matplotlib 如何在直方图箱后绘制线图

ulydmbyx  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(133)

我想用箱子的数量来做一个历史图。之后我想画一个直线图,但是我不能画直线图。我可以得到一些帮助吗?

plt.hist(df1_small['fz'], bins=[-5, -4.5, -4, -3.5, -3,-2.5,-2,-1.5,-1,-0.5,0, 0.5, 1,1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5])
sns.kdeplot(df1_small['fz'],fill=True, color = 'Red') 
df1_small['fz'].plot(kind = "kde")
plt.xlabel('Distribution of fz of small particles')
plt.xlim(-5, 5)
plt.show()

这是我的代码,我得到的情节是这样的:

如果你注意到了,直线图是一种直线只有在0。
我如何在所有的箱子后面画一条线?
数据来源:https://github.com/Laudarisd/csv

0vvn1miw

0vvn1miw1#

如果你只想跟踪plt.hist的轮廓,使用返回的countsbins

width = 0.5
counts, bins, bars = plt.hist(data=df1_small, x='fz', bins=np.arange(-5, 5.5, width))
plt.plot(bins[:-1] + width/2, counts)

如果您尝试覆盖sns.kdeplot

  • 在直方图上设置density=True以绘制概率密度而不是原始计数
  • clip KDE到直方图范围
  • 降低平滑带宽系数bw_adjust
plt.hist(data=df1_small, x='fz', bins=np.arange(-5, 5.5, 0.5), density=True)
sns.kdeplot(data=df1_small, x='fz', clip=(-5, 5), bw_adjust=0.1)

相关问题