2014-01-25 120 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