我想更改用Pandas.Dataframe绘制的堆积区域图中的填充颜色。
import pandas as pd
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
ax = df.plot.area(linewidth=0);
现在我想通过plot函数返回的实例提供了修改颜色等属性的权限。
但是轴类太复杂而无法快速学习。我在Stack Overflow中找不到类似的问题。
那么,任何大师都可以帮我一个忙吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
诀窍是使用“颜色”参数:
解决方案 1:字典
只需传递一个 {column name: color}
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'], )
ax = df.plot.area(color={'b':'0', 'c':'#17A589', 'a':'#9C640C', 'd':'#ECF0F1'})
Soln 2:序列
只需传递一系列颜色代码(它将匹配您的列的顺序)。
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'], )
ax = df.plot.area(color=('0', '#17A589', '#9C640C', '#ECF0F1'))
无需设置线宽(它会自动调整颜色)。此外,这不会与图例混淆。
答案 2 :(得分:0)
matplotlib的API非常复杂,但这里artist Module给出了一个非常简单的说明。对于条形图/条形图,可以通过 .patches 访问和修改属性,但对于区域图,它们需要与 .collections 一起使用。
要实现特定修改,请使用此类代码。
import pandas as pd
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
ax = df.plot.area(linewidth=0);
for collection in ax.collections:
collection.set_facecolor('#888888')
highlight = 0
ax.collections[highlight].set_facecolor('#aa3333')
可以通过运行
找到集合的其他方法dir(ax.collections[highlight])