如何为在不同数据框中指定的颜色的数据框堆叠条形图分配颜色?

时间:2019-03-26 17:17:31

标签: pandas dataframe colors bar-chart assign

我有一个巨大的数据框df,看起来像这样:

Index Sample_names A     B     Z     C   Y   U     D ...   O     P
 0       sample1   0.1   0    0.5  0.02  0  0.005  0 ... 0.004 0.08
 1       sample2   0     0.3  0.03  0.8  0  0.3   0.01 ... 0.1   0
 .
 .
 .
99     sample100   0      0   0.5   0.01 0.4 0.02 0.01 ... 0   0.004

我使用“ Sample_names”的不同子集创建了堆叠的条形图。但是,每个图都有不同的颜色分配给相同的列名。例如,在一幅图中,A列可以被分配为红色,而在另一幅图中,A列可以被分配为绿色。这使得很难比较这些数字。所以我想将每个列名称与颜色关联:

cm = plt.get_cmap('gist_rainbow')
f=int(df.size/len(df))
new_cm=[cm(1.*i/f) for i in range(f)]
color_assign=pd.DataFrame(new_cm)
color_assign['Fam_names']=list(df.head(0))
color_assign=color_assign.set_index('Fam_names')

颜色分配看起来像这样:

Index      0         1         2         3

A        1.000000  0.000000  0.160000  1.0
B        1.000000  0.000000  0.139085  1.0  
Z        1.000000  0.000000  0.118170  1.0
.
.
.                      
P        1.000000  0.000000  0.076340  1.0

要最终分配,我尝试了一些简单的方法:

df1.plot(kind='bar',stacked=True,color=color_assign,legend=None)

(df1是我创建的新数据框,只有原始数据框df的几行,例如8行),但这没有用。反正有什么要使它起作用?

0 个答案:

没有答案