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()
и инициализировали ее значениями для строк и столбцов. Мы указываем желаемый график и переменные для построения графика с помощью функции 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()
Обратите внимание, что общее количество графиков также уменьшилось за счет использования параметра hue
. Функция add_legend()
используется для добавления легенды к финальному рисунку.
Мы можем настроить окончательную фигуру, используя множество параметров и функций этого класса. Например, параметры height
и aspect
могут использоваться для изменения размера конечной фигуры, функция set_titles()
может использоваться для добавления заголовка к графику на каждой оси, функция set_xlabels()
для изменения меток осей и т. д.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn