На этом шаге мы рассмотрим назначение и примеры использования этой функции.
Функция swarmplot() по своему функционалу и параметрам для настройки отображения подобна функции stripplot(), за исключением параметра jitter, который у неё отсутствует. Идея swarmplot() в том, что отображаемые точки на диаграмме не перекрываются, это позволяет делать выводы о преобладании тех или иных значений в наборах данных по их визуальному распределению.
Рассмотрим несколько примеров, демонстрирующих работу с swarmplot():
import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") sns.swarmplot(x="time", y='tip', data=tips) plt.show()
Рис.1. Диаграмма, построенная функцией swarmplot()
Из представленной диаграммы можно сделать вывод, что за ланчем чаще всего оставляют два доллара в качестве чаевых, а за обедом от двух до четырёх долларов.
Для задания цветовой схемы будем использовать признак, отвечающий за то, курили при этом клиенты или нет:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") sns.swarmplot(x="time", y='tip', hue="smoker", data=tips) plt.show()
Рис.2. Демонстрация цветового разделения по признаку smoker
Возьмём подвыборку из набора в количестве 50 штук и дополнительно настроим размер маркеров, их цвет и ширину границы:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") df = tips.sample(frac=1, random_state=123)[:50] sns.swarmplot(x="time", y='tip', size=10, edgecolor="gray", linewidth=2, data=df) plt.show()
Рис.3. Диаграмма с измеренными размером, цветом и шириной границы маркеров
Зададим самостоятельно цветовую палитру:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") color_palette = {"Male": "g", "Female": "y"} df = tips.sample(frac=1, random_state=123)[:50] sns.swarmplot(x="time", y='tip', hue="sex", size=10, edgecolor="gray", palette=color_palette, linewidth=2, data=df) plt.show()
Рис.4. Диаграмма с изменённой цветовой палитрой
За ориентацию диаграммы отвечает параметр orient, за порядок - order, параметр dodge управляет визуальным разделением данных. Проиллюстрируем на примерах их использование. Изменим ориентацию и порядок отображения значений признака time:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") sns.swarmplot(x='tip', y="time", order=['Dinner', 'Lunch'], orient='h', hue="sex", data=tips) plt.show()
Рис.5. Демонстрация работы с параметрами order и orient
Разделим с помощью параметра dodge выбору на группы:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") sns.swarmplot(x="time", y='tip', hue="smoker", dodge=True, data=tips) plt.show()
Рис.6. Демонстрация работы с параметром dodge
На следующем шаге мы рассмотрим визуализацию распределений категориальных данных.