我正在绘制一个有几行的Pandas数据帧,每行都有一种特定的颜色(由rgb值指定)。我正在寻找一种方法,通过将绘图线颜色直接指定给DataFrame列名,而不是按顺序列出它们,使代码更具可读性
我知道我能做到:
将熊猫作为pd导入
df=pd.DataFrame(列=['红色零线','蓝色一线'],数据=[[0,1],[0,1]])
df.绘图(颜色=['#BB0000','#0000BB'])#红色和蓝色
但是,由于不止两行,我真的希望能够通过列标题指定颜色,以使代码易于维护。例如:
df.plot(颜色={'red zero line':'FF0000','blue one line':'0000FF'})
不过,colors关键字实际上不可能是字典。(从技术上讲,它的类型转换为list,从而生成列标签列表。)
我知道pd.DataFrame.plot继承自matplotlib.pyplot.plot,但我找不到colors关键字的文档。这两种方法的文档都没有列出这样的关键字
如果您创建了一个将列名映射到颜色的字典,那么您可以使用列表理解功能动态构建颜色列表,您只需从列名中获取颜色。这还允许您指定默认颜色,以防遗漏列
将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
df=pd.DataFrame([[0,1,2],[0,1,2]],
列=['红色零行','蓝色一行','额外'])
颜色dict={'red zero line':'FF0000','blue one line':'0000FF'}
#使用get将深灰色指定为默认颜色。
plot(color=[color_dict.get(x,#333333'),用于df.columns中的x])
plt.show()