我有一个熊猫数据框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]是相同的方式,但对于下一个示例。如果可能的话,我也可以使用这本词典来作图。