【发布时间】:2013-12-07 02:13:47
【问题描述】:
pandas 和 matplotlib 的新手,在使用 groupby 时无法使颜色图正常工作。
这是我的测试;
x=[]
for i in range(5):
for j in range(9):
x.append({'time':datetime(2013,1,1+i), 'col1':chr(ord('A')+j), 'col2':chr(ord('Z')-j), 'value':100+i*j})
df=pd.DataFrame(x)
df=df.set_index('time')
df
构建此数据集;
col1 col2 值 时间 2013-01-01 AZ 100 2013-01-01 B Y 100 2013-01-01 C X 100 2013-01-01 D W 100 2013-01-01 电动汽车 100 2013-01-01 F U 100 2013-01-01 G T 100 2013-01-01 H S 100 2013-01-01 I R 100 2013-01-02 AZ 100 2013-01-02 B Y 101 2013-01-02 C X 102 2013-01-02 D W 103 2013-01-02 EV 104 2013-01-02 F U 105 2013-01-02 G T 106 2013-01-02 H S 107 2013-01-02 I R 108 2013-01-03 AZ 100 2013-01-03 B Y 102 2013-01-03 C X 104 2013-01-03 D W 106 2013-01-03 EV 108 2013-01-03 F U 110 2013-01-03 G T 112 2013-01-03 H S 114 2013-01-03 I R 116 2013-01-04 AZ 100 2013-01-04 B Y 103 2013-01-04 C X 106 2013-01-04 D W 109 2013-01-04 EV 112 2013-01-04 F U 115 2013-01-04 G T 118 2013-01-04 H S 121 2013-01-04 I R 124 2013-01-05 AZ 100 2013-01-05 B Y 104 2013-01-05 C X 108 2013-01-05 D W 112 2013-01-05 EV 116 2013-01-05 F U 120 2013-01-05 G T 124 2013-01-05 H S 128 2013-01-05 I R 132如果我正常绘制,最后几项颜色相同;
df.groupby(['col1','col2'])['value'].plot()
plt.legend()
http://postimg.org/image/cta2pa76f/
如果我尝试使用颜色图,它似乎不起作用;
df.groupby(['col1','col2'])['value'].plot(colormap='jet')
plt.legend()
http://postimg.org/image/8y6ompo0n/
如果我尝试'Blues',白色背景上的所有白线会更糟。
任何帮助表示赞赏!
【问题讨论】: