【发布时间】:2019-03-14 23:37:29
【问题描述】:
我有一个 pandas 数据框 df1,如下所示:
Sample_names esv0 esv1 esv2 esv3 ... esv918 esv919 esv920 esv921
pr1gluc8NH1 635 0 6222 0 ... 0 0 0 0
pr1gluc8NH2 3189 75 9045 0 ... 0 0 0 0
pr1gluc8NHCR1 0 2152 12217 0 ... 0 0 0 0
pr1gluc8NHCR2 0 17411 1315 0 ... 0 1 0 0
pr1sdm8NH1 365 7 4117 32 ... 0 0 0 0
pr1sdm8NH2 4657 18 13520 0 ... 0 0 0 0
pr1sdm8NHCR1 0 139 3451 0 ... 0 0 0 0
pr1sdm8NHCR2 1130 1439 4163 0 ... 0 0 0 0
如您所见,有许多零值。我想绘制一个堆积条形图:
df1.plot(kind='bar',stacked=True)
这很好用,并给出了正确的条形图。但是这个图例很大,因为它为所有 922 值创建了一个图例。每个 Sample_names 只有大约 40-50 个非零值;所以原则上图例可以更小。有没有办法让它只打印非零值的图例? 我将不胜感激任何帮助。
注意:如果有帮助,我创建了一个字典,其中每个元素都是一个 sample_names 及其非零列的数据框。例如,我的字典 v 有 8 个元素,每个元素都是一个数据框。 v[0] 看起来像
Index pr1gluc8NH1
esv2 6222
esv9 4879
esv27 2050
依此类推(它有 43 个非零行)。
v[1] 是相同的方式,但用于下一个样本。如果可能的话,我也可以使用这本字典来制作情节。
【问题讨论】:
-
谢谢。
label='_nolegend_'不起作用。 (我只是像这样包含它:df1.plot(kind='bar',stacked=True, label='_nolegend_'))我试图找出另一个答案,for循环可以用于我的数据框。
标签: python pandas dataframe bar-chart