如何在 python 中绘制直方图箱后的线图
How to make line plot following histogram bins in python
我正在尝试制作一个包含 bin 数量的历史图。
之后我想在 bins 之后绘制一个线图,但我无法绘制线图。我能得到一些帮助吗?
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的直线。
如何在所有 bin 之后画线?
如果只想描出plt.hist
的轮廓,使用返回的counts
和bins
:
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)
我正在尝试制作一个包含 bin 数量的历史图。 之后我想在 bins 之后绘制一个线图,但我无法绘制线图。我能得到一些帮助吗?
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的直线。
如何在所有 bin 之后画线?
如果只想描出plt.hist
的轮廓,使用返回的counts
和bins
:
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)