Связи между величинами
Как связаны площадь квартиры и её цена? Температура и время суток? Часы подготовки и балл? Для таких вопросов нужны графики, где обе оси — числа. В seaborn это scatterplot и lineplot.
scatterplot — каждая точка отдельно
import seaborn as sns
import pandas as pd
df = pd.DataFrame({
"часы": [1, 2, 3, 4, 5, 6],
"балл": [50, 58, 60, 71, 75, 86],
"класс": ["7а", "7б", "7а", "7б", "7а", "7б"],
})
sns.scatterplot(data=df, x="часы", y="балл")
Это то же, что plt.scatter, но по столбцам таблицы и с автоматическими подписями осей.
Группы: hue, style, size
Главная сила seaborn — дополнительные измерения через оформление:
sns.scatterplot(data=df, x="часы", y="балл", hue="класс")
hue— цвет точки зависит от столбца (группы или число);style— форма маркера зависит от столбца;size— размер точки зависит от числового столбца.
Легенда появляется автоматически. Порядок групп в ней — порядок первого появления в данных; задать его явно можно через hue_order=[...]. Цвета — параметром palette.
lineplot — линия с усреднением
lineplot соединяет точки линией, отсортировав их по x. Если одному значению x соответствует несколько значений y, рисуется их среднее:
visits = pd.DataFrame({
"день": [1, 1, 2, 2, 3, 3],
"посетителей": [100, 120, 90, 110, 150, 170],
})
sns.lineplot(data=visits, x="день", y="посетителей")
Линия пройдёт через 110, 100 и 160. Вокруг неё по умолчанию рисуется полупрозрачная полоса — интервал неопределённости среднего. Её отключают параметром errorbar=None.
Что считать вместо среднего — задаёт estimator: "median", "max", "sum".
Несколько линий
С hue получится отдельная линия для каждой группы — удобно сравнивать:
sns.lineplot(data=sales, x="месяц", y="выручка", hue="магазин", errorbar=None)
У каждой линии своё усреднение — внутри своей группы.
relplot — отдельные графики по группам
Если групп много и линии мешают друг другу, relplot строит сетку графиков — по одному на группу:
sns.relplot(data=sales, x="месяц", y="выручка", col="магазин", kind="line")
Итог
scatterplot— точки по двум числовым столбцам;hue,style,size— группы цветом, формой, размером;hue_order— порядок групп;lineplot— линия по возрастаниюx, повторяющиесяxусредняются;errorbar=Noneубирает полосу;estimator— что считать вместо среднего;hueвlineplot— по линии на группу;relplot(col=...)— отдельные графики.