2015-04-22 2 views
6

Wie groß ist die Einheit der y-Achse bei der Verwendung von distplot zur Darstellung eines Histogramms? Ich habe verschiedene Histogramme zusammen mit einer normalen Anpassung gezeichnet, und ich sehe, dass es in einem Fall einen Bereich von 0 bis 0,9 und in einem anderen Bereich von 0 bis 4,5 hat.Verwendung von distplot in Python

Vielen Dank.

Antwort

6

Von help(sns.distplot):

norm_hist: Bool, otional True, zeigt das Histogramm Höhe eine Dichte anstatt eine Zählung. Dies wird vorausgesetzt, wenn eine KDE- oder angepasste Dichte aufgetragen wird.

A Dichte skaliert wird, so dass die Fläche unter der Kurve 1 ist, so dass keine einzelnen Behälter werden je größer sein als 1 (die gesamte Datensatz) [2]. Aber kde ist standardmäßig aktiviert und überschreibt norm_hist, so norm_hist ändert die y-Einheiten nur, wenn Sie ausdrücklich kde deaktivieren:

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] Klärung von mwaskom, danke!

+2

Das ist hilfreich, aber ich denke, es wäre gut, die Idee explizit zu machen, dass eine Dichte so skaliert ist, dass die Fläche unter der Kurve 1 ist. – mwaskom

+0

Danke cphlewis ... – Harry

+0

Kein Problem, Harry. Überprüfen Sie es als getan, wenn es Ihre Frage beantwortet. – cphlewis