web-dev-qa-db-fra.com

Quelle est l'unité de l'axe des y lors de l'utilisation de distplot pour tracer un histogramme?

Quelle est l'unité de l'axe des y lors de l'utilisation de distplot pour tracer un histogramme? J'ai tracé différents histogrammes avec un ajustement normal et je vois que dans un cas, il a une plage de 0 à 0,9 tandis que dans un autre une plage de 0 à 4,5.

13
Harry

De help(sns.distplot):

norm_hist: bool, otional Si Vrai, la hauteur de l'histogramme montre une densité plutôt qu'un nombre. Ceci est implicite si un KDE ou une densité ajustée est tracé.

A densité est mis à l'échelle de sorte que l'aire sous la courbe soit 1, donc aucun bac individuel ne sera jamais plus grand que 1 (l'ensemble de données entier). Mais kde est True par défaut et remplace norm_hist, alors norm_hist modifie les unités y uniquement si vous définissez explicitement kde sur False:

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

16
cphlewis