我也很怀念fit 参数。当他们弃用 distplot 函数时,他们似乎没有替换该功能。在他们堵住那个洞之前,我创建了一个简短的函数来将正态分布覆盖添加到我的histplot。我只是将函数与导入一起粘贴到文件顶部,然后只需添加一行即可在需要时添加叠加层。
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
def normal(mean, std, color="black"):
x = np.linspace(mean-4*std, mean+4*std, 200)
p = stats.norm.pdf(x, mean, std)
z = plt.plot(x, p, color, linewidth=2)
data = np.random.normal(size=500) * 0.1
ax = sns.histplot(x=data, stat="density")
normal(data.mean(), data.std())
如果您更愿意使用stat="probability" 而不是stat="density",您可以使用以下方式标准化拟合曲线:
def normal(mean, std, histmax=False, color="black"):
x = np.linspace(mean-4*std, mean+4*std, 200)
p = stats.norm.pdf(x, mean, std)
if histmax:
p = p*histmax/max(p)
z = plt.plot(x, p, color, linewidth=2)
data = np.random.normal(size=500) * 0.1
ax = sns.histplot(x=data, stat="probability")
normal(data.mean(), data.std(), histmax=ax.get_ylim()[1])