小提琴图(violinplot)与箱线图(boxplot)扮演类似的角色,它显示了定量数据在一个(或多个)分类变量的多个层次上的分布,这些分布可以进行比较。不像箱线图中所有绘图组件都对应于实际数据点,小提琴绘图以基础分布的核密度估计为特征。
Seaborn中的小提琴图的由violinplot
()方法实现,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)
(1)
split:将split设置为True则绘制分拆的小提琴图,以比较经过hue拆分后的两个量。
(2)
scale_hue:bool,当使用色调变量(hue参数)嵌套小提琴时,此参数确定缩放是在主要分组变量(scale_hue = True)的每个级别内,还是在图上的所有小提琴(scale_hue = False)内计算出来的。
(3)
orient:”v”|”h”
用于控制图像是水平还是竖直显示,通常是从输入变量的dtype推断出来的,此参数一般当不传入x、y,只传入data的时候使用。
(4)
inner:控制小提琴图内部数据点的表示,有“box”、 “quartile”、 “point”、“stick”四种方式。
(5)
scale:该参数用于缩放每把小提琴的宽度,有“area”, “count”, “width”三种方式
(6)
cut:float,距离,以带宽大小为单位,以控制小提琴图外壳延伸超过内部极端数据点的密度。设置为“0”以将小提琴范围限制在观察数据的范围内,在ggplot中具有与trim = True相同的效果。
(7)
width:float,控制小提琴图的宽度(比例)。
小提琴图可以用于查看密度分布,数据越稠密越宽,越稀疏越窄,绘制效果如图所示。
import pandas as pd # 导入pandas库
import warnings # 载入当前版本seaborn库时会有警告出现,先载入warnings,忽略警告
import seaborn as sns # 导入seaborn库
import matplotlib.pyplot as plt # 导入matplotlib库
warnings.filterwarnings("ignore") # 忽略警告
sns.set(style="white", color_codes=True) # 确定主题为white
iris = pd.read_csv("iris.csv") # 读取csv数据并转为Pandas的 DataFrame格式
# violinplot 小提琴图,查看密度分布,结合了前面的两个图,并且进行了简化
# 数据越稠密越宽,越稀疏越窄
sns.violinplot(x="Species", y="PetalLengthCm", data=iris, size=6)
plt.show()
小提琴图
箱线图+散点图