Ласточка морского рога

Диаграмма рассеяния - один из самых простых и полезных графиков. Модуль seaborn в Python может пойти дальше таких графиков и использовать их для представления категориальных значений.

График роя - это тип графика рассеяния, который используется для представления категориальных значений. Он очень похож на ленточный график, но позволяет избежать наложения точек. Мы можем использовать seaborn.swarmplot() для создания таких графиков.

Не рекомендуется использовать этот тип графика при большом размере выборки.

Мы будем использовать функцию swarmplot() для создания такого графика для категориальных значений в следующем коде.

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']})

sns.swarmplot(data = df, y = "Price", x = "Quantity")

морской ройплот для категориальных данных

В приведенном выше примере мы можем добавить параметр hue к функции swarmplot() и разделить категории для двух разных продуктов. Мы можем разделить два продукта, используя аргумент dodge и установив для него значение True.

Кроме того, мы можем использовать некоторые другие аргументы также с функцией swarmplot(). Размер и цвет точек можно изменить с помощью аргументов size и color. Мы можем изменить цветовую комбинацию, используемую для разных категорий, с помощью параметра palette. Аргумент linewidth добавляет границу к точкам указанной ширины. Порядок отображения категорий можно контролировать с помощью параметра order.

Мы попытаемся использовать приведенные выше аргументы в следующем примере.

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']})

sns.swarmplot(data = df, y = "Price", x = "Quantity", hue = 'Product', dodge = True, 
              linewidth = 2.5 , palette = 'Set2', size  = 10)

морская роя с оттенком и другими аргументами

swarmplot() также можно использовать как хороший комплимент над сюжетом из коробки или скрипки. Это дает хорошее представление о распределении данных.

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

import random 
import numpy as np
import seaborn as sns

n = random.sample(range(0,50),30) 
arr = np.array(n)
sns.boxplot(n)
sns.swarmplot(n, color = 'red')

Морской бокс-заговор над роевым участком

Функция catplot() также может создать такой график роя. Для этого нам нужно указать значение параметра kind в функции catplot() как swarm.