基于数据框
import pandas as pd
df = pd.DataFrame({'cat1':[100,0,0,5],'cat2':[5,20,50,0]})
df
cat1 cat2
0 100 5
1 0 20
2 0 50
3 5 0
我想绘制直方图,使得x轴代表索引值0到3,每个索引值的条形显示列值cat1和cat2的分布。
df.plot.hist(alpha=0.5)
绘制y上的索引值和x轴上的类别值:
并且
df.transpose().plot.hist(alpha=0.5)
会产生一些我甚至完全无法理解的东西:
我真正想要的是每个索引值的条形图,它说明了列中的值 - 例如对于索引0,在y轴上应该有一个cat1颜色的条形拉伸到100,包含另一个cat2颜色的条形,拉伸到5。
我怎样才能实现这一目标?
答案 0 :(得分:1)
你可以使用pandas viz函数:
df.plot.bar(堆叠= TRUE)
答案 1 :(得分:0)
试试这个,它关闭你想要的东西:
import matplotlib.pyplot as plt
df.plot.barh()
plt.show()
感谢SpghttCd:
import matplotlib.pyplot as plt
df.plot.bar()
plt.show(