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