asthma boneitis diabetes pneumonia
0 No No Yes Maybe
1 No No No Yes
2 No No No No
3 Yes No No Maybe
4 Yes No No Maybe
.. ... ... ... ...
995 No No Yes No
996 Maybe Yes Yes Yes
997 No No No Yes
998 No No No No
999 No No Maybe No
为了正确格式化绘图数据,请执行以下操作:
df2 = df.stack().groupby(level=[1]).value_counts().unstack()
# Preferred order of stacked bar elements
stack_order = ['Yes', 'Maybe', 'No']
df2 = df2[stack_order]
1条答案
按热度按时间uz75evzq1#
是的,这是可能的。但是您需要先稍微重新格式化数据。
这是我在这个例子中使用的数据集,它在列中有标签,1000个随机的"是"、"否"或"也许"作为值。
为了正确格式化绘图数据,请执行以下操作:
此时,数据如下所示:
现在,您已经准备好绘制数据了。下面的代码可以实现这一点:
我使用
rot=0
来避免旋转文本标签(它们通常呈45度角),使用stacked=True
来生成堆叠条形图。图如下所示:
附录
生成测试数据集的代码: