Как создавать подсюжеты в Seaborn (с примерами)


Вы можете использовать следующий базовый синтаксис для создания подграфиков в библиотеке визуализации морских данных в Python:

#define dimensions of subplots(rows, columns)
fig, axes = plt.subplots(2, 2)

#create chart in each subplot
sns.boxplot(data=df, x='team', y='points', ax=axes[0,0])
sns.boxplot(data=df, x='team', y='assists', ax=axes[0,1])

...

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

Пример: создание сюжетных линий в Seaborn

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
 'points': [19, 12, 15, 14, 19, 23, 25, 29],
 'assists': [13, 15, 11, 8, 6, 8, 11, 14],
 'rebounds': [11, 7, 8, 12, 13, 7, 6, 8],
 'blocks': [1, 2, 2, 3, 5, 4, 3, 3]})

#view DataFrame
print(df)

 team points assists rebounds blocks
0 A 19 13 11 1
1 A 12 15 7 2
2 A 15 11 8 2
3 A 14 8 12 3
4 B 19 6 13 5
5 B 23 8 7 4
6 B 25 11 6 3
7 B 29 14 8 3

В следующем коде показано, как определить область построения с двумя строками и двумя столбцами и создать ящичковую диаграмму в каждом подграфике для каждой из четырех числовых переменных в DataFrame:

import matplotlib.pyplot as plt
import seaborn as sns

#set seaborn plotting aesthetics as default
sns.set()

#define plotting region (2 rows, 2 columns)
fig, axes = plt.subplots(2, 2)

#create boxplot in each subplot
sns.boxplot(data=df, x='team', y='points', ax=axes[0,0])
sns.boxplot(data=df, x='team', y='assists', ax=axes[0,1])
sns.boxplot(data=df, x='team', y='rebounds', ax=axes[1,0])
sns.boxplot(data=df, x='team', y='blocks', ax=axes[1,1])

В этом примере мы создали область построения с двумя строками и двумя столбцами и заполнили каждый подграфик ящичковыми диаграммами.

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

Например, следующий код показывает, как создать область графика с одной строкой и двумя столбцами и заполнить каждый график графиком для скрипки:

import matplotlib.pyplot as plt
import seaborn as sns

#set seaborn plotting aesthetics as default
sns.set()

#define plotting region (1 row, 2 columns)
fig, axes = plt.subplots(1, 2)

#create boxplot in each subplot
sns.violinplot (data=df, x='team', y='points', ax=axes[0])
sns.violinplot (data=df, x='team', y='assists', ax=axes[1])

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

В следующих руководствах объясняется, как выполнять другие распространенные функции в Seaborn:

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