Использование distplot в Python

какова единица оси y при использовании distplot для построения гистограммы? Я построил различные гистограммы вместе с нормальной подгонкой, и я вижу, что в одном случае он имеет диапазон от 0 до 0.9, а в другом-от 0 до 4.5.

спасибо.

1 ответов


С help(sns.distplot):

norm_hist : bool, otional Если True, высота гистограммы показывает плотность, а не количество. Это подразумевается, если строится график плотности KDE или fitted.

A плотность масштабируется так, что площадь под кривой равна 1, поэтому ни один отдельный бин никогда не будет выше 1 (весь набор данных)[2]. Но kde включен по умолчанию и переопределяет norm_hist, поэтому norm_hist изменяет y-единицы, только если вы явно выключите kde:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

fig, axs = plt.subplots(figsize=(6,6), ncols=2, nrows=2)
data = np.random.randint(0,20,40)

for row in (0,1):
    for col in (0,1):
        sns.distplot(data, kde=row, norm_hist=col, ax=axs[row, col])

axs[0,0].set_ylabel('NO kernel density')
axs[1,0].set_ylabel('KDE on')
axs[1,0].set_xlabel('norm_hist=False')
axs[1,1].set_xlabel('norm_hist=True')

enter image description here

[2] разъяснение от mwaskom, спасибо!