Как настроить размер рисунка на графике Seaborn


Есть два способа изменить размер фигуры морского графика в Python.

Первый метод можно использовать для изменения размера графиков «на уровне осей», таких как графики sns.scatterplot() или sns.boxplot() :

sns.set (rc={" figure.figsize ":( 3 , 4 )}) #width=3, #height=4

Второй метод можно использовать для изменения размера графиков «уровня фигур», таких как графики sns.lmplot() и sns.catplot() или sns.jointplot() .

Этот метод требует, чтобы вы указали высоту и аспект (отношение ширины к высоте) в аргументах диаграммы:

sns.lmplot (data=df, x=" var1", y=" var2",
 height= 6 , aspect= 1.5 ) #height=6, width=1.5 times larger than height

В следующих примерах показано, как использовать оба этих метода на практике.

Метод 1: изменение размера графиков на уровне осей

В следующем коде показано, как создать диаграмму рассеяния с шириной 8 и высотой 4:

import pandas as pd
import seaborn as sns

#create data
df = pd.DataFrame({" var1 ": [25, 12, 15, 14, 19, 23, 25, 29],
 " var2 ": [5, 7, 7, 9, 12, 9, 9, 4],
 " var3 ": [11, 8, 10, 6, 6, 5, 9, 12]})

#define figure size
sns.set (rc={" figure.figsize ":( 8 , 4 )}) #width=8, height=4

#display scatterplot
sns.scatterplot(data=df, x=" var1", y=" var2 ") 

А следующий код показывает, как создать коробку с изображением моря шириной 6 и высотой 5:

#define figure size
sns.set (rc={" figure.figsize ":( 6 , 5 )}) #width=6, height=5

#display scatterplot
sns.boxplot(data=df[" var1 "]) 

Метод 2: изменить размер графиков на уровне фигур

Для графиков на уровне фигур (таких как sns.lmplot, sns.catplot, sns.jointplot и т. д.) необходимо указать высоту и ширину в самой диаграмме.

В следующем коде показано, как создать морской lmplot с высотой 5 и шириной в 1,5 раза больше, чем высота:

import pandas as pd
import seaborn as sns

#create data
df = pd.DataFrame({" var1 ": [25, 12, 15, 14, 19, 23, 25, 29],
 " var2 ": [5, 7, 7, 9, 12, 9, 9, 4],
 " var3 ": [11, 8, 10, 6, 6, 5, 9, 12]})

#create lmplot
sns.lmplot (data=df, x=" var1", y=" var2",
 height= 5 , aspect= 1.5 ) #height=5, width=1.5 times larger than height

А следующий код показывает, как создать совместный участок моря с высотой 3,5. Поскольку совместный график по умолчанию квадратный, нам не нужно указывать значение аспекта:

sns.jointplot (data=df, x=" var1", y=" var2", height= 3.5 ) 

Ознакомьтесь сдокументацией Seaborn для подробного объяснения разницы между функциями на уровне фигур и на уровне осей.

Дополнительные ресурсы

Как добавить название к участкам Seaborn
Как изменить метки осей на графике Seaborn
Как изменить положение легенды в Seaborn