资料来源:用python学统计学、帮助文档
使用seaborn.boxplot()函数绘制箱线图
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
data_set=np.array([2,3,3,4,4,4,4,5,5,6])
df=pd.DataFrame({
'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]
})
sns.set()
sns.boxplot(data_set)
下面介绍sns.boxplot()函数中常用的几个重要参数(参数等号后为默认设置):
(1)x=None,y=None,用于数据显示的轴向
sns.boxplot(x=data_set)
sns.boxplot(data=df,y='value',x='type')
(2)hue=None,用于将数据拆分为不同系列。
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.boxplot(data=df,y='value',x='type',hue='hue')
(3)order=None,指定箱线图的显示顺序。
sns.boxplot(data=df,y='value',x='type',order=['B','A'])
(4)hue_order=None,用于指定系列的显示顺序。
sns.boxplot(data=df,y='value',x='type',hue='hue',hue_order=[2,1])
(5)orient=None,当x和y都是数值型数据时,用于指定数据统计的方向,默认按y轴方向统计。
sns.boxplot(data=df,y='value',x='hue',orient='v')
sns.boxplot(data=df,y='value',x='hue',orient='h')
(6)width=0.8,用于设置箱子的相对宽度,默认为0.8,下面为0.5时的图片:
sns.boxplot(data=df,y='value',x='type',width=0.5)
(7)fliersize=5,用于设置显示异常值时标记的大小,默认值为5,注意观察下面两图异常值数据点大小的变化。
ser=pd.Series(data=[2,3,3,4,4,4,4,5,5,10])
sns.boxplot(ser)
sns.boxplot(ser,fliersize=10)
(8)whis=1.5,设置箱线图线须的位置,默认是1.5,即1.5倍的四分位距,一般采用默认设置即可。具体解释为:Q1为下四分位数,Q3为上四分位数。箱线图线须的下界值为Q1-1.5*(Q3-Q1),箱线图线须的上界值为Q3+1.5*(Q3-Q1),在上下界范围之外的数据点被认为是异常值,并标注为异常点。当数据中的最小值大于箱线图的线须的下界值时,程序会把最小值当作下界值进行作图;同样当最大值小于线须的上界值时,程序会把最大值当作上界值进行作物。