绘制直方图,其中x轴为索引值,y轴为每列值

时间:2018-06-13 07:42:09

标签: python pandas matplotlib

基于数据框

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轴上的类别值:

enter image description here

并且

df.transpose().plot.hist(alpha=0.5)

会产生一些我甚至完全无法理解的东西:

enter image description here

我真正想要的是每个索引值的条形图,它说明了列中的值 - 例如对于索引0,在y轴上应该有一个cat1颜色的条形拉伸到100,包含另一个cat2颜色的条形,拉伸到5。

我怎样才能实现这一目标?

2 个答案:

答案 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(