2017-08-28 3 views
1

Angenommen, wir haben ein Array mit Zahlen zwischen 0 und 1:Grenze der Bereich von x in Seaborn distplot KDE Schätzungs

arr=np.array([ 0.  , 0.  , 0.  , 0.  , 0.6934264 , 
       0.  , 0.  , 0.  , 0.  , 0.  , 
       0.  , 0.  , 0.6934264 , 0.  , 0.6934264 , 
       0.  , 0.  , 0.  , 0.  , 0.251463 , 
       0.  , 0.  , 0.  , 0.87104906, 0.251463 , 
       0.  , 0.  , 0.  , 0.  , 0.  , 
       0.  , 0.  , 0.  , 0.  , 0.48419626, 
       0.  , 0.  , 0.  , 0.  , 0.  , 
       0.87104906, 0.  , 0.  , 0.251463 , 0.48419626, 
       0.  , 0.251463 , 0.  , 0.  , 0.  , 
       0.  , 0.  , 0.  , 0.  , 0.  , 
       0.  , 0.251463 , 0.  , 0.35524532, 0.  , 
       0.  , 0.  , 0.  , 0.  , 0.251463 , 
       0.251463 , 0.  , 0.74209813, 0.  , 0.  ]) 

seaborn Verwendung, ich möchte ein Verteilungsdiagramm zeichnen:

sns.distplot(arr, hist=False) 

Das gibt uns die folgende Abbildung: enter image description here

Wie Sie sehen können, reicht die kde Schätzung von irgendwo nahe -0.20 bis 1.10. Ist es möglich, die Schätzung zwischen 0 und 1 zu erzwingen? Ich habe die folgenden ohne Erfolg versucht:

sns.distplot(arr, hist=False, hist_kws={'range': (0.0, 1.0)}) 
sns.distplot(arr, hist=False, kde_kws={'range': (0.0, 1.0)}) 

Die zweite Zeile stellt eine Ausnahme - range kein gültiges Schlüsselwort für kde_kws.

Antwort

1

Der richtige Weg, dies zu tun, ist durch die clip Schlüsselwort statt range mit:

sns.distplot(arr, hist=False, kde_kws={'clip': (0.0, 1.0)}) 

, die produzieren: enter image description here

der Tat, wenn Sie nur über die kde kümmern und nicht die Histogramm, können Sie die kdeplot Funktion verwenden, die das gleiche Ergebnis erzeugen wird:

sns.kdeplot(arr, clip=(0.0, 1.0)) 
+0

D oes dies tatsächlich neu berechnen die kde oder schneidet nur den teil außerhalb der palette? – Peaceful

Verwandte Themen