2014-01-25 76 views
3

我需要创建一个包含大量(10左右)类别的堆叠条形图。问题是熊猫只能提供多达7种不同类别的颜色。它将剩余的颜色设置为蓝色。如何确保每个类别都有独特的颜色?熊猫叠加条形图为大型图例复制颜色

实施例:

df = pd.DataFrame(np.abs(np.random.randn(10,10)),columns=['A','B','C','D','E','F','G','H','I','J'], index=range(10)) 
df.plot(kind='bar',stacked=True,figsize=(20,10)) 

可生产其中H,I和J也得不到独特的颜色的条形图。

回答

7
In [22]: colors = plt.cm.GnBu(np.linspace(0, 1, 10)) 

In [23]: df.plot(kind='bar', stacked=True, figsize=(20, 10), color=colors) 
Out[23]: <matplotlib.axes._subplots.AxesSubplot at 0x10b792d90> 

enter image description here

matplotlib有一堆不同的色彩映射的选择。只是不要使用jet

+2

下面是您可能包含在答案中的所有不同颜色映射的不错链接。 [Matplotlib colormaps](http://wiki.scipy.org/Cookbook/Matplotlib/Show_colormaps) –

+2

谢谢!事实上,你可以做到这一点,没有它的“颜色”线: 'df.plot(kind ='bar',stacked = True,figsize =(20,10),colormap =“GnBu”)' – Caleb