2017-12-05 1 views
0

Ich möchte die Farbe einer Linie von fit innerhalb des Seaborn-Pakets für ein Array von x und y Daten angeben. Stattdessen kann ich nur herausfinden, wie man die Farbe und Schattierung für die Kernel-Dichte-Funktion ändert. Wie kann ich die Farbe für eine Gauß-Passform ändern? I.e. Die Zeilen darunter sollten rot und blau sein. Es wäre auch toll, in der Funktion wie das "shade":True Argument zu schattieren.Farbe der Seaborn-Verteilerlinie ändern

import seaborn as sns 
sns.distplot(x,kde_kws={"shade":True}, kde=False, fit=stats.gamma, hist=None, color="red", label="label 1"); 
sns.distplot(y,kde_kws={"shade":True}, kde=False, fit=stats.gamma, hist=None, color="blue", label="label 2"); 

enter image description here

Antwort

1

Für die Farbe der angepassten Kurve zu ändern, müssen Sie fit_kws Argument setzen. Aber fit_kws unterstützt keine Schattierung. Sie können den Bereich unterhalb der angepassten Kurve immer noch mit ein paar zusätzlichen Codezeilen beschatten (siehe Abbildung unten), aber ich denke, dass dies eine Antwort auf eine andere von Ihnen gepostete Frage ist.

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

sns.set() 
np.random.seed(0) 
x = np.random.randn(100) 
y = np.random.normal(loc=6.0, scale=1, size=(50,)) 

ax = sns.distplot(x, fit_kws={"color":"red"}, kde=False, 
     fit=stats.gamma, hist=None, label="label 1"); 
ax = sns.distplot(y, fit_kws={"color":"blue"}, kde=False, 
     fit=stats.gamma, hist=None, label="label 2"); 

plt.show(block=False) 

Das Ergebnis des Codes ist unten zeigen: enter image description here

+0

Dank dafür. Ich hatte Schwierigkeiten, die Argumente für 'fit_kws' zu finden. Schade, das ist kompliziert zu schattieren. – JAG2024

+1

Ja. Es ist ein wenig kompliziert zu schattieren. –