FacetGrid в Seaborn

Модуль seaborn используется для визуализации и создания красивых статистических графиков на Python. Он основан на библиотеке matlplotlib и использует ее. Иногда мы можем столкнуться с ситуацией, когда одновременно отображается несколько диаграмм, что дает лучшую ясность в понимании набора данных. Для таких ситуаций мы можем использовать класс FacetGrid из модуля seaborn.

В этом руководстве будет показано, как использовать класс FacetGrid модуля seaborn в Python.

Класс FacetGrid используется для визуализации взаимосвязи между распределением данных с другими подмножествами данных путем создания сеток для нескольких графиков. Он отображает набор данных в сетке, указывая оси строк и столбцов. Это удобно, когда мы работаем со сложным набором данных.

Различные морские графики, такие как relplot(), lmplot() и catplot(), используют этот класс по умолчанию.

Мы используем конструктор seaborn.FacetGrid(), чтобы инициировать объект этого класса. См. Следующий код.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({"Quantity": [5,6,7,8,5,6,7,8,5,6,7,8,5,6,7,8],
                   "Price": [9,10,15,16,13,14,15,18,11,12,14,15,16,17,18,19],
                   "Day" : [1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2],
                   "Product": ['A','A','A','A','B','B','B','B',
                              'A','A','A','A','B','B','B','B']})

g = sns.FacetGrid(df, col = "Product", row = 'Day')
g.map(sns.lineplot, "Price", "Quantity")

Seaborn FacetGrid

В приведенном выше примере мы построили график цен на разные продукты в разных количествах за два дня. Мы создали сетку с помощью конструктора seaborn.FacetGrid() и инициализировали ее значениями для строк и столбцов. Мы указываем желаемый график и переменные для построения графика с помощью функции map(). Мы использовали относительно простой набор данных и смогли добиться желаемого результата. Кроме того, в этом классе мы можем использовать третью ось, называемую оттенком. Это отображает данные с разными категориями на одном графике разными цветами.

Мы изменяем код в ранее упомянутом примере и добавляем параметр hue. Например,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({"Quantity": [5,6,7,8,5,6,7,8,5,6,7,8,5,6,7,8],
                   "Price": [9,10,15,16,13,14,15,18,11,12,14,15,16,17,18,19],
                   "Day" : [1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2],
                   "Product": ['A','A','A','A','B','B','B','B',
                              'A','A','A','A','B','B','B','B']})

g = sns.FacetGrid(df, col = "Product", hue = 'Day')
g.map(sns.lineplot, "Price", "Quantity")
g.add_legend()

seaborn FacetGrid с параметром оттенка

Обратите внимание, что общее количество графиков также уменьшилось за счет использования параметра hue. Функция add_legend() используется для добавления легенды к финальному рисунку.

Мы можем настроить окончательную фигуру, используя множество параметров и функций этого класса. Например, параметры height и aspect могут использоваться для изменения размера конечной фигуры, функция set_titles() может использоваться для добавления заголовка к графику на каждой оси, функция set_xlabels() для изменения меток осей и т. д.