参考资料:用python动手学统计学,帮助文档

使用seaborn.violinplot()函数绘制箱线图

sns.violinplot()的做出来的小提琴图比plt.violinplot()更像小提琴。

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns

df=pd.DataFrame(data={
    'type':['A','A','A','A','A','A','A','A','A','A','B','B','B','B','B','B','B','B','B','B'],
    'value':[2,3,3,4,4,4,4,5,5,6,5,6,6,7,7,7,7,8,8,9]
})
ser=pd.Series(data=[2,3,3,4,4,4,4,5,5,6])

sns.violinplot(ser)

下面介绍sns.violinplot()函数中常用的几个重要参数(参数等号后为默认设置):

(1)data=None,就是数据源。

(2)x=None, y=None,如果不指定x和y,则以整列数据绘制一个小提琴;如果制定了x和y,则会按照分类型数据对数值型数据进行分组,来绘制小提琴。下图为有无x,y参数的区别:

sns.violinplot(df)

sns.violinplot(df,x='type',y='value')

(3)hue=None,指定数据系列,通常与x,y共同使用。

df=pd.DataFrame(data={
    'type':['A','A','A','A','A','A','A','A','A','A','B','B','B','B','B','B','B','B','B','B'],
    'value':[2,3,3,4,4,4,4,5,5,6,5,6,6,7,7,7,7,8,8,9],
    'hue':[1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2]
})

sns.violinplot(df,x='type',y='value',hue='hue')

(4)order=None,hue_order=None,用于指定小提琴的显示顺序。

sns.violinplot(df,x='type',y='value',order=['B','A'])

sns.violinplot(df,x='type',y='value',hue='hue',hue_order=[2,1])

(5)bw='scott',指定绘制小提琴时的核密度曲线的计算方式,通常默认即可。

(6)cut=2,用于设置小提琴的核密度曲线两端的延长线,当cut=0时,图形效果等于plt.violinplot(),如下:

sns.violinplot(ser,cut=0)

(7)scale='area',对小提琴的大小进行设置,“area”表示所有小提琴的面积一样,“width”表示所有小提琴的宽度一样,“count”表示小提琴的宽度与数据桶中数据量一致。

(8)scale_hue=True,当设置了hue参数时,设置小提琴图的计算标准,通常采用默认值。

(9)inner='box',用于设置小提琴内部的迷你图,默认是箱线图;“quartiles”表示绘制四分位线;“points”表示绘制数据点;“stick”是将数据点绘制为数据线;若设置为None,则内部为空。

sns.violinplot(df,x='type',y='value',inner='quartiles')

sns.violinplot(df,x='type',y='value',inner='points')

sns.violinplot(df,x='type',y='value',inner='stick')

sns.violinplot(df,x='type',y='value',inner=None)

(10)split=False,当设置hue参数后,用于设置hue是分裂显示还是独立显示。默认为False,即独立显示,当设置为True时,为分裂显示,效果如下:

sns.violinplot(df,x='type',y='value',hue='hue',split=True)

(11)dodge=True,当设置hue参数后,用于设置hue是否错位显示。默认为True,错位显示;当设置False时,效果如下:

sns.violinplot(df,x='type',y='value',hue='hue',dodge=False)

(12)orient=None,当x和y都是数值型数据时,用于指定沿哪个方向绘制小提琴,效果如下:

sns.violinplot(df,x='value',y='hue',orient='h')

Logo

鸿蒙生态一站式服务平台。

更多推荐