2015-04-22 18 views
6

Jaka jest jednostka osi Y podczas korzystania z funkcji distplot w celu wykreślenia histogramu? Wyrysowałem różne histogramy razem z normalnym dopasowaniem i widzę, że w jednym przypadku ma on zakres od 0 do 0,9, podczas gdy w innym zakresie od 0 do 4.5.Korzystanie z funkcji distplot w języku Python

Dziękuję.

Odpowiedz

6

Od help(sns.distplot):

norm_hist: bool, otional Jeśli prawda, że ​​wysokość histogram pokazuje gęstość zamiast zliczania. Jest to domyślne, jeśli kreślone jest KDE lub dopasowana gęstość.

gęstość są skalowane tak, że pole powierzchni pod krzywą wynosi 1, więc żaden pojedynczy pojemnik będzie nigdy wyższa niż 1 (całym zbiorze danych) [2]. Ale kde jest domyślnie włączona i nadpisuje norm_hist, więc norm_hist zmienia Y jednostek tylko wtedy, gdy wyraźnie włączyć kde off:

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] wyjaśnień od mwaskom, dzięki!

+2

Jest to pomocne, ale myślę, że dobrze byłoby wyrazić pogląd, że gęstość jest skalowana tak, że obszar pod krzywą wynosi 1. – mwaskom

+0

Dziękuję cphlewis ... – Harry

+0

Nie ma problemu, Harry. Sprawdź to jako wykonane, jeśli odpowiada na twoje pytanie. – cphlewis

Powiązane problemy