熊猫配色方案无法正确处理我的数据(python)

时间:2019-02-16 11:58:35

标签: python pandas matplotlib colors

我想更改我的熊猫图的默认配色方案。我通过cmap pandas参数尝试了不同的配色方案,但是当我更改它时,我的barplot的所有条都具有相同的颜色。

我尝试的代码如下:

yearlySalesGenre = df1.groupby('Genre').Global_Sales.sum().sort_values()
fig = plt.figure()
ax2 = plt.subplot()
yearlySalesGenre.plot(kind='bar',ax=ax2, sort_columns=True, cmap='tab20')
plt.show(fig)

我绘制的数据(yearlySalesGenre)是pandas Series类型:

Genre
Strategy         174.50
Adventure        237.69
Puzzle           243.02
Simulation       390.42
Fighting         447.48
Racing           728.90
Misc             803.18
Platform         828.08
Role-Playing     934.40
Shooter         1052.94
Sports          1249.47
Action          1745.27

使用tab20 cmap,我得到以下图:

plot with cmap tab20

我获得了所有tab20方案中第一种颜色的所有条形。我在做什么错了?

请注意,如果我使用熊猫图的默认配色方案,它将正确显示所有具有不同颜色的条,但事实是我想使用特定的配色方案。


如前所述,它是重复的答案。以防万一,答案是熊猫根据不同的列(而不是行)创建颜色方案。因此,要使用不同的颜色,您可以转置数据和其他内容(重复的链接),或直接使用matplotlib.pyplot绘图以提供更大的灵活性(在我的情况下):

plt.bar(range(len(df)), df, color=plt.cm.tab20(np.arange(len(df))))

1 个答案:

答案 0 :(得分:0)

也许这就是您想要的:

df2.T.plot( kind='bar', sort_columns=True, cmap='tab20')

我认为您的问题是只有一个系列。熊猫绘图栏将绘制单独的系列(列),每个系列都有其自己的颜色,并根据索引分隔每个栏。 通过使用.T,数据中的系列变为多列,但仅在一个索引内。我相信您可以使用图例enter image description here来获得更好的显示效果。