Публичный аккаунт WeChat: «Python Reading Finance»
Если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте сообщение в публичном аккаунте
Seaborn — это библиотека визуализации Python, основанная на matplotlib. Он предоставляет расширенный интерфейс для рисования привлекательных статистических графиков. Seaborn на самом деле инкапсулирует более продвинутый API на основе matplotlib, что упрощает рисование и делает ваши графики более точными без большого количества настроек.
Примечание. Весь код реализован в блокноте IPython.
boxplot
Блочная диаграмма, также известная как диаграмма с усами, блочная диаграмма или прямоугольная диаграмма, представляет собой статистический график, используемый для отображения информации о дисперсии набора данных. Он может отображать набор данныхмаксимальное значение,минимум,медианаиверхний и нижний квартили. Назван из-за своей формы, похожей на коробку. Он также часто используется в различных областях и часто используется в управлении качеством. Схема выглядит следующим образом:
Далее мы представляем конкретный метод реализации 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)
х, у:в кадре данныхимя столбца (ул.)иливекторные данные
данные: кадр данныхилимножество
sns.boxplot(x=data["pw"],data=data)
**палитра:** Палитра, управляет тоном изображения.
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]) #右图
hue(str): имя столбца фрейма данных, в соответствии со значениями в именах столбцов, чтобы сформировать категориальную гистограмму
sns.boxplot(x="color",y="pl",data=data,hue="catagory",palette="Set3")
порядок, hue_order (списки строк): используется для управления порядком гистограммы
sns.boxplot(x="catagory",y="pw",data=data,palette="Set3",order=[2,1,0])
ориентир:"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]) #水平显示
размер флаера: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])
что:Определите верхнюю и нижнюю границы выбросов (пропорцию 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]) #右图
ширина: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]) #右图
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)
я не буду представлять его здесьx, y, оттенок, данные, порядок, hue_order, палитраИспользование параметров, использование этих параметров такое же, как использование графики, представленной ранее, при необходимости вы можете проверить предыдущее содержимое.
Сначала нарисуем схему скрипки:
sns.violinplot(x="gender",y="age",data=data)
расколоть:будет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]) #下图
масштаб_оттенок: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]) #下图
ориентир:"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]) #下图
внутренний:Сюжет скрипки управленияВнутренние точки данныхуказывает на то, что есть'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]) #钢琴图内显示具体数据棒(右下)
масштаб:Этот параметр используется для масштабирования ширины каждой скрипки.'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",每把小提琴将有相同的宽度(下图)
резать: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]) #下图
ширина: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) #下图
Это уже третья статья из вводной серии Seaborn, я считаю, что у всех есть общее представление о процессе отображения Seaborn, и вы также можете понять, что использовать Seaborn для рисования проще, чем matplotlib. Вышеупомянутое содержание написано мной в сочетании с официальными документами и моим собственным пониманием.Если есть какие-либо ошибки, пожалуйста, не стесняйтесьуказать и прокомментировать,общий обмен и прогресс, я также надеюсь, что то, что я написал, может помочь вам более или менее после прочтения этой статьи!
Подпишитесь на мой публичный аккаунт"Питон Чтение Финансов", ответьте «py» в фоновом режиме, чтобы получить пакет учебных ресурсов Python, а также группу обмена обучением Python!