在一个图中叠加直方图

时间:2018-03-15 04:03:28

标签: python-2.7 pandas

我有两个数据帧,我正在尝试制作直方图。我想将一个直方图叠加在另一个上,并将它们显示在同一个单元格中,这样我就可以轻松地比较这些分布。任何人都可以建议如何做到这一点?我在下面有示例代码和数据。这将直方图分别绘制在另一个之上。

数据:

print(df[1:5])

 bob
1 1
2 3
3 5
4 1  

打印(DF2 [1:5])

 bob
1 3
2 3
3 2
4 1         

代码:

    import pandas as pd
    import matplotlib.pyplot as plt
    %matplotlib inline

    df[df[bob]>=1][bob].hist(bins=25, range=[0, 25])
    plt.show()
    df2[df2[bob]>=1][bob].hist(bins=25, range=[0, 25])
    plt.show()

1 个答案:

答案 0 :(得分:2)

使用ax

%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd

fig = plt.figure() 
ax = fig.add_subplot(111)

df = pd.DataFrame([1, 3, 5, 1], columns=["bob"], index=[1, 2, 3, 4])
df2 = pd.DataFrame([3, 3, 2, 1], columns=["bob"], index=[1, 2, 3, 4])

ax.hist([df, df2], label=("df", "df2"), bins=25, range=[0, 25])
ax.legend()
相关问题