Визуализация Python | Seaborn 5-минутное введение (3) - boxplot и violinplot

визуализация данных
Визуализация Python | Seaborn 5-минутное введение (3) - boxplot и violinplot

Публичный аккаунт WeChat: «Python Reading Finance»
Если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте сообщение в публичном аккаунте

Seaborn — это библиотека визуализации Python, основанная на matplotlib. Он предоставляет расширенный интерфейс для рисования привлекательных статистических графиков. Seaborn на самом деле инкапсулирует более продвинутый API на основе matplotlib, что упрощает рисование и делает ваши графики более точными без большого количества настроек.

image

Примечание. Весь код реализован в блокноте IPython.


boxplot

Блочная диаграмма, также известная как диаграмма с усами, блочная диаграмма или прямоугольная диаграмма, представляет собой статистический график, используемый для отображения информации о дисперсии набора данных. Он может отображать набор данныхмаксимальное значение,минимум,медианаиверхний и нижний квартили. Назван из-за своей формы, похожей на коробку. Он также часто используется в различных областях и часто используется в управлении качеством. Схема выглядит следующим образом:

image

Далее мы представляем конкретный метод реализации boxplot в Seaborn, который является API boxplot:

seaborn.boxplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, width=0.8, dodge=True, fliersize=5, linewidth=None, whis=1.5, notch=False, ax=None, **kwargs)

Начнем с конкретных примеров

%matplotlib inline
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
plt.rc("font",family="SimHei",size="15")  #解决中文乱码问题

Набор данных, используемый в этой статье, представляет собой набор данных цветка ириса.

data.head(6)

image

х, у:в кадре данныхимя столбца (ул.)иливекторные данные

данные: кадр данныхилимножество

sns.boxplot(x=data["pw"],data=data) 

image

**палитра:** Палитра, управляет тоном изображения.

fig,axes=plt.subplots(1,2,sharey=True)
sns.boxplot(x="catagory",y="pw",data=data,ax=axes[0]) #左图
sns.boxplot(x="catagory",y="pw",data=data,palette="Set3",ax=axes[1]) #右图

image

hue(str): имя столбца фрейма данных, в соответствии со значениями в именах столбцов, чтобы сформировать категориальную гистограмму

sns.boxplot(x="color",y="pl",data=data,hue="catagory",palette="Set3")

image

порядок, hue_order (списки строк): используется для управления порядком гистограммы

sns.boxplot(x="catagory",y="pw",data=data,palette="Set3",order=[2,1,0]) 

image

ориентир:"v"|"h" используется для управления отображением изображения по горизонтали или по вертикали (это обычно выводится из dtype входной переменной, этот параметр обычно используется, когдаКогда x и y не передаются, передаются только данныеиспользовать)

fig,axes=plt.subplots(2,1)
sns.boxplot(data=data,orient="v",palette="Set3",ax=axes[0])  #竖直显示
sns.boxplot(data=data,orient="h",palette="Set3",ax=axes[1])  #水平显示 

image

размер флаера:float, используется для обозначения наблюдений за выбросамиразмер метки

fig,axes=plt.subplots(1,2)
sns.boxplot(x="color",y="pl",data=data,ax=axes[0]) #fliersize默认为5
sns.boxplot(x="color",y="pl",data=data,fliersize=20,ax=axes[1])  

image

что:Определите верхнюю и нижнюю границы выбросов (пропорцию IQR по нижнему и верхнему квартилям), точки за пределами этого диапазона будут идентифицированы как выбросы. IQR относится к разнице между верхней и нижней квартилями.

fig,axes=plt.subplots(1,2)
sns.boxplot(x="color",y="pl",data=data,whis=1,ax=axes[0])  #左图
sns.boxplot(x="color",y="pl",data=data,whis=2,ax=axes[1])  #右图

image

ширина:float, управляет шириной boxplot

fig,axes=plt.subplots(1,2)
sns.boxplot(x="color",y="pl",data=data,width=0.3,ax=axes[0])  #左图
sns.boxplot(x="color",y="pl",data=data,width=0.8,ax=axes[1])  #右图

image


violinplot

Скрипичная диаграмма играет ту же роль, что и коробочная диаграмма, показывая распределение количественных данных на нескольких уровнях одной (или нескольких) категориальных переменных, которые можно сравнивать. В отличие от коробчатой ​​диаграммы, все компоненты сюжета соответствуютфактические точки данных, скрипичный сюжет основан на распределенииОценка плотности ядракак характеристика. Конкретное использование заключается в следующем:

seaborn.violinplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, bw='scott', cut=2, scale='area', scale_hue=True, gridsize=100, width=0.8, inner='box', split=False, dodge=True, orient=None, linewidth=None, color=None, palette=None, saturation=0.75, ax=None, **kwargs)

В примерах используются следующие наборы данных:

data.head(6)

image

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

Сначала нарисуем схему скрипки:

sns.violinplot(x="gender",y="age",data=data)

image

расколоть:будетsplitУстановить какtrueзатем нарисуйте разделенную скрипичную диаграмму, чтобы сравнитьhueДве величины после разделения:

fig,axes=plt.subplots(2,1) 
 ax=sns.violinplot(x="color",y="age",data=data,hue="smoker",split=True,ax=axes[0]) #上图,拆分后的图
ax=sns.violinplot(x="color",y="age",data=data,hue="smoker",ax=axes[1])  #下图

image

масштаб_оттенок:bool, при использовании переменной hue (hueпараметр) при вложении скрипок этот параметр определяет какой зум в основномгруппирующая переменная(scale_hue = true) внутри каждого уровня все еще на графикевсе скрипки(scale_hue = false) рассчитывается в пределах.

fig,axes=plt.subplots(2,1)
ax=sns.violinplot(x="color",y="age",data=data,hue="smoker",split=True,scale_hue=False,ax=axes[0]) #上图
ax=sns.violinplot(x="color",y="age",data=data,hue="smoker",split=True,scale_hue=True,ax=axes[1])  #下图

image

ориентир:"v"|"h"Используется для управления отображением изображения по горизонтали или по вертикали (обычно берется из входной переменнойdtypeПредполагается, что этот параметр, как правило, когдаКогда x и y не передаются, передаются только данныеиспользовать)

fig,axes=plt.subplots(2,1)
sns.violinplot(data=data[["height","weight","age"]],orient="v",ax=axes[0]) #上图
sns.violinplot(data=data[["height","weight","age"]],orient="h",ax=axes[1]) #下图

image

внутренний:Сюжет скрипки управленияВнутренние точки данныхуказывает на то, что есть'box','quartile','point','stick'Четыре пути.

fig,axes=plt.subplots(2,2)
sns.violinplot(x="color",y="age",data=data,inner="box",ax=axes[0,0])  #钢琴图内显示箱型图(左上)
sns.violinplot(x="color",y="age",data=data,inner="quartile",ax=axes[0,1])  #钢琴图内显示四分位数线(右上)
sns.violinplot(x="color",y="age",data=data,inner="point",ax=axes[1,0])  #钢琴图内显示具体数据点(左下)
sns.violinplot(x="color",y="age",data=data,inner="stick",ax=axes[1,1])  #钢琴图内显示具体数据棒(右下)

image

масштаб:Этот параметр используется для масштабирования ширины каждой скрипки.'area','count','width'три пути

fig,axes=plt.subplots(3,1)
sns.violinplot(x="color",y="age",data=data,scale="area",ax=axes[0]) #如果为"area",每把小提琴将有相同的面积(上图)
sns.violinplot(x="color",y="age",data=data,scale="count",ax=axes[1])  #如果为"count",小提琴的宽度将根据该小组中观察的数量来缩放(中图)
sns.violinplot(x="color",y="age",data=data,scale="width",ax=axes[2])  #如果为"age",每把小提琴将有相同的宽度(下图)

image

резать:float, Distance, в размере пропускной способности, чтобы управлять плотностью, при которой внешняя оболочка графика скрипки выходит за пределы внутренних крайних точек данных. Установите на 0, чтобы ограничить диапазон скрипки диапазоном наблюдаемых данных (т.е. в ggplot с тем жеtrim = trueтот же эффект)

fig,axes=plt.subplots(2,1)
sns.violinplot(x="age",y="gender",data=data,ax=axes[0]) #上图
sns.violinplot(x="age",y="gender",data=data,cut=0,ax=axes[1])  #下图

image

ширина:float, управляет шириной (масштабом) фортепианного графика

fig,axes=plt.subplots(2,1)
sns.violinplot(x="color",y="age",data=data,ax=axes[0],width=0.5)  #上图
sns.violinplot(x="color",y="age",data=data,ax=axes[1],width=0.9)  #下图

image

Это уже третья статья из вводной серии Seaborn, я считаю, что у всех есть общее представление о процессе отображения Seaborn, и вы также можете понять, что использовать Seaborn для рисования проще, чем matplotlib. Вышеупомянутое содержание написано мной в сочетании с официальными документами и моим собственным пониманием.Если есть какие-либо ошибки, пожалуйста, не стесняйтесьуказать и прокомментировать,общий обмен и прогресс, я также надеюсь, что то, что я написал, может помочь вам более или менее после прочтения этой статьи!

Подпишитесь на мой публичный аккаунт"Питон Чтение Финансов", ответьте «py» в фоновом режиме, чтобы получить пакет учебных ресурсов Python, а также группу обмена обучением Python!

底部二维码.png