web-dev-qa-db-de.com

So ändern Sie die Größe einer Figur im Python Seaborn-Paket

Ich habe Probleme, meine Handlungsfiguren mit Seaborn zu vergrößern. Ich verwende sns.pairplot, um Spalten eines Datenrahmens gegeneinander zu zeichnen. 

    %matplotlib inline
    plt.rcParams['figure.figsize']=10,10
    columns=list(df.columns.values)
    g=sns.pairplot(df, kind='reg', x_vars=columns,y_vars = ['Column 1'])

Die Diagramme sind mit Daten gut gefüllt, aber die Figurengröße ist zu klein. Ich dachte, plot.rCParams ['figure.figsize'] würde steuern, wie groß die Figur ist, aber sie scheint nicht zu wirken. Ich habe ein paar verschiedene Vorschläge von Online-Boards ausprobiert, aber nichts scheint zu funktionieren. 

17
Vikram Josyula

Versuchen Sie, die Größe in Klammern zu setzen, das ist für mich der Trick:

plt.rcParams['figure.figsize']=(10,10)
20
S.Zuo

sns.pairplot "Gibt die zugrunde liegende PairGrid-Instanz zur weiteren Anpassung zurück." ...

g=sns.pairplot(df, kind='reg', x_vars=columns,y_vars = ['Column 1'])
g.fig.set_size_inches(15,15)
16

Zusätzlich zu der gut funktionierenden Antwort von @MartinAnderson bietet seaborn selbst die Möglichkeit, die Höhe der Subplots des Gitters einzustellen. In Kombination mit dem aspect wird die Gesamtgröße der Figur in Abhängigkeit von der Anzahl der Teilflächen im Raster bestimmt. 

Bei Meeresgeborenen <= 0,8,1:

g = sns.pairplot(..., size=10, aspect=0.6)

Im Seegeborenen> = 0,9,0:

g = sns.pairplot(..., height=10, aspect=0.6)

Beachten Sie, dass dies für alle Seaborn-Funktionen gilt, die ein Raster auf Figurenebene erzeugen, wie pairplot, relplot, catplot, lmplot und das zugrunde liegende PairGrid oder FacetGrid.

Bei anderen Seaborn-Plots, die direkt zu Achsen plotten, die Lösungen aus Wie ändern Sie die Größe von mit matplotlib gezeichneten Figuren? wird gut funktionieren.

Wenn wir nur die Höhe oder Breite ändern möchten, können wir dies tun 

g = sns.pairplot(df, kind='reg', x_vars=columns,y_vars = ['Column 1'])
g.fig.set_figheight(6)
g.fig.set_figwidth(10)
1
Jeevan

Verweisen auf Rahuls Frage über sns.catplot ( Die Plotgröße kann mit matplotlib und seaborn nicht geändert werden )

Wenn Sie es in Jupyter Notebook versuchen: 

plt.figure(figsize=(25,20))
sns.boxplot(x='CriticRating', y='AudienceRating', data=movies)

es funktioniert aber 

sns.boxplot(x='CriticRating', y='AudienceRating', data=movies)
plt.figure(figsize=(25,20))

funktioniert nicht (Grundstück ist sehr klein). Es ist wichtig, die Zeile plt.figure(figsize=(25,20)) vor sns.boxplot() hinzuzufügen und natürlich %matplotlib inline einzuschließen, um die Darstellung in jupyter anzuzeigen.

0
Dejan Marić