Dataframe.plot()实际上并不
需要
color的参数。你必须驱动
matplotlib.pyplot.bar()直接调用,如果你想使用的颜色简单的序列(但要注意,有更好的选择,下面列出)。
如果你决定使用
matplotlib.pyplot.bar()直接,再考虑到它的
color参数,那么只需要无论是 单一
有效的颜色值,那么
'r'或者
'k',或 序列
这样的颜色值(在对文件
bar()的调用它
数组一样 )。一个 列表 的名称将工作:
my_colors = ['r', 'g', 'b', 'k', 'y', 'm', 'c'] # red, green, blue, black, etc.plt.bar(len(train_class), train_class, color=my_colors)
文档指出,序列的长度应等于绘制的条数:
可选参数 color , edgecolor , linewidth , xerr 和 yerr 可以是标量或长度等于条数的序列。
但是,将 颜色映射
传递到
Dataframe.plot()此处比较容易。彩色映射是获得不同条形颜色的便捷途径。您可以传入一个作为
colormap关键字参数,它可以是一个命名映射(作为字符串):
train_class.plot(kind='bar', colormap='Paired')
或
matplotlib.cm模块中的实际matplotlib颜色图对象:
from matplotlib import cmtrain_class.plot(kind='bar', colormap=cm.Paired)
如果您要坚持使用
matplotlib.pyplot.bar(),但是要使用颜色表,请根据颜色表创建一系列颜色。熊猫
np.linspace()为此使用,因此我们在这里也这样做:
import numpy as nppaired_colors = cm.Paired(np.linspace(0, 1, num=len(train_class))plt.bar(len(train_class), train_class, color=paired_colors)
对于条形图,我会选择定性的颜色图;每个名称都是
cmcolormap模块的属性。上面
cm.Paired是一个这样的颜色图。以0.0到1.0之间的浮点数序列调用颜色图,可以返回在该范围的每个“百分比”处拾取的颜色。您也可以传入整数序列来索引各个颜色。
返回到Pandas,您还可以根据
matplotlib.colors.ListedColormap实例选择一系列颜色来创建一个颜色图:
from matplotlib.colors import ListedColormapmy_colors = ['r', 'g', 'b', 'k', 'y', 'm', 'c'] # red, green, blue, black, etc.my_colormap = ListedColormap(my_colors)
然后将其传递给数据框
.plot()调用:
train_class.plot(kind='bar', colormap=my_colormap)



