我有一个数据框,例如(这是该数据框的一个子集):
Species Pathway Number of Gene Families
0 Glovio ABC 0.5
1 Glovio ABC/Synthase 1.0
2 Glovio Synthase 0.0
3 Glovio Wzy 10.0
4 Glovio Wzy/ABC 0.0
5 n2 ABC 2.0
6 n2 ABC/Synthase 0.0
7 n2 Synthase 13.0
8 n2 Wzy 7.0
9 n2 Wzy/ABC 0.0
10 Glokil ABC 2.0
11 Glokil ABC/Synthase 1.0
12 Glokil Synthase 0.0
13 Glokil Wzy 4.0
14 Glokil Wzy/ABC 0.0
我想绘制一个堆叠的条形图,其中每个条形对应于物种(x轴)。 y轴将显示通路标记的颜色编号的基因家族数。
我尝试过简单的事情,例如:
df[['Pathway']].plot(kind='bar', stacked=True)
但是我收到一条错误消息,指出:
Empty 'DataFrame': no numeric data to plot
有什么想法吗?
谢谢!
答案 0 :(得分:1)
在searborn
中,您可以使用sns.barplot
指定一个hue
变量,该变量将根据不同的级别确定条形的颜色:
sns.barplot(data=df, x='Species', y='NumberofGeneFamilies', hue='Pathway')
答案 1 :(得分:1)
您可以在调整数据框形状后执行以下操作:
df.groupby(['Species', 'Pathway'])['Number of Gene Families'].sum()\
.unstack().plot(kind='bar', stacked=True)
或具有与pivot_table相同的结果:
df.pivot(index='Species', columns='Pathway', values='Number of Gene Families')\
.plot(kind='bar', stacked=True )
答案 2 :(得分:0)