我有一只熊猫数据,它有237列6行:
1 2 3 4 ... 234 235 236 237
Hydrophobic 19.324182 0.422386 2.006336 7.814150 ... 50.791975 3.379092 5.807814 0.000000
Negative 0.211193 0.000000 0.000000 0.211193 ... 0.422386 0.211193 1.372756 0.105597
Positive 0.000000 0.000000 0.000000 0.105597 ... 0.527983 43.928194 2.851109 0.422386
Special 16.050686 0.000000 1.267159 2.534319 ... 0.844773 0.211193 0.105597 0.422386
Polar 21.858501 0.211193 1.795143 6.019007 ... 0.739176 2.323126 26.082365 0.000000
Gap 42.449842 99.260824 94.825766 83.210137 ... 46.568110 49.841605 63.674762 98.944034因为我想以叠加的方式为每一列绘制行类型的百分比,所以我转换了dataframe并绘制它:
transpose_df=df.transpose()
transpose_df.plot.bar(stacked=True)但是,这个情节看起来不太好,我读了matplotlib的文档,但是我不知道怎么做。

不幸的是,我试图使图表垂直于建议,但我得到了同样的结果,甚至增加宽度。
transpose_df.plot(kind='barh', stacked=True, figsize=(5, 50))

任何知道如何避免重叠和有一个更清晰的图表。
谢谢。
发布于 2020-06-23 14:39:34
您有237列要绘制,您可以使用宽度参数节省一些空间,并避免在栏之间出现空白。除此之外,没有办法让您的x标记标签与这么多列可读的。
我认为绘制许多列的最佳方法是使用水平条形图,并为您的绘图设置一个很大的高度。垂直滚动比水平滚动容易。
下面是一个示例:
transpose_df.plot(kind='barh', stacked=True, figsize=(5, 30))https://stackoverflow.com/questions/62537292
复制相似问题