python绘制箱线图-python中matplotlib箱型图作用及画法

本文详细介绍了箱型图(Boxplot)的原理,包括中位数、四分位数、内限和外限的概念,并通过Python的matplotlib库展示了如何绘制箱线图,包括分组汇总和异常值的标记。适合数据分析人员理解数据分布及异常值处理。
摘要由CSDN通过智能技术生成

箱型图:又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图(在数据分析中常用在异常值检测)

包含一组数据的:最大值、最小值、中位数、上四分位数(Q3)、下四分位数(Q1)、异常值

① 中位数 → 一组数据平均分成两份,中间的数

② 上四分位数Q1 → 是将序列平均分成四份,计算(n+1)/4与(n-1)/4两种,一般使用(n+1)/4

③ 下四分位数Q3 → 是将序列平均分成四份,计算(1+n)/4*3=6.75

④ 内限 → T形的盒须就是内限,最大值区间Q3+1.5IQR,最小值区间Q1-1.5IQR (IQR=Q3-Q1)

⑤ 外限 → T形的盒须就是内限,最大值区间Q3+3IQR,最小值区间Q1-3IQR (IQR=Q3-Q1)

⑥ 异常值 → 内限之外 - 中度异常,外限之外 - 极度异常

plt.plot.box()

plt.boxplot()

# plt.boxplot()绘制

# pltboxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None,

# usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None,

# labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_xticks=True, autorange=False,

# zorder=None, hold=None, data=None)

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

plt.figure(figsize=(10,4))

# 创建图表、数据

f = df.boxplot(sym = 'o', # 异常点形状,参考marker

vert = True, # 是否垂直

whis = 1.5, # IQR,默认1.5,也可以设置区间比如[5,95],代表强制上下边缘为数据95%和5%位置

patch_artist = True, # 上下四分位框内是否填充,True为填充

meanline = False,showmeans=True, # 是否有均值线及其形状

showbox = True, # 是否显示箱线

showcaps = True, # 是否显示边缘线

showfliers = True, # 是否显示异常值

notch = False, # 中间箱体是否缺口

return_type='dict' # 返回类型为字典

)

plt.title('boxplot')

print(f)

for box in f['boxes']:

box.set( color='b', linewidth=1) # 箱体边框颜色

box.set( facecolor = 'b' ,alpha=0.5) # 箱体内部填充颜色

for whisker in f['whiskers']:

whisker.set(color='k', linewidth=0.5,linestyle='-')

for cap in f['caps']:

cap.set(color='gray', linewidth=2)

for median in f['medians']:

median.set(color='DarkBlue', linewidth=2)

for flier in f['fliers']:

flier.set(marker='o', color='y', alpha=0.5)

# boxes, 箱线

# medians, 中位值的横线,

# whiskers, 从box到error bar之间的竖线.

# fliers, 异常值

# caps, error bar横线

# means, 均值的横线

d975c6fbe87b

plt.boxplot()绘制

# plt.boxplot()绘制

# pltboxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None,

# usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None,

# labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_xticks=True, autorange=False,

# zorder=None, hold=None, data=None)

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

plt.figure(figsize=(10,4))

# 创建图表、数据

f = df.boxplot(sym = 'o', # 异常点形状,参考marker

vert = True, # 是否垂直

whis = 1.5, # IQR,默认1.5,也可以设置区间比如[5,95],代表强制上下边缘为数据95%和5%位置

patch_artist = True, # 上下四分位框内是否填充,True为填充

meanline = False,showmeans=True, # 是否有均值线及其形状

showbox = True, # 是否显示箱线

showcaps = True, # 是否显示边缘线

showfliers = True, # 是否显示异常值

notch = False, # 中间箱体是否缺口

return_type='dict' # 返回类型为字典

)

plt.title('boxplot')

print(f)

for box in f['boxes']:

box.set( color='b', linewidth=1) # 箱体边框颜色

box.set( facecolor = 'b' ,alpha=0.5) # 箱体内部填充颜色

for whisker in f['whiskers']:

whisker.set(color='k', linewidth=0.5,linestyle='-')

for cap in f['caps']:

cap.set(color='gray', linewidth=2)

for median in f['medians']:

median.set(color='DarkBlue', linewidth=2)

for flier in f['fliers']:

flier.set(marker='o', color='y', alpha=0.5)

# boxes, 箱线

# medians, 中位值的横线,

# whiskers, 从box到error bar之间的竖线.

# fliers, 异常值

# caps, error bar横线

# means, 均值的横线

d975c6fbe87b

plt.boxplot()绘制

# plt.boxplot()绘制

# 分组汇总

df = pd.DataFrame(np.random.rand(10,2), columns=['Col1', 'Col2'] )

df['X'] = pd.Series(['A','A','A','A','A','B','B','B','B','B'])

df['Y'] = pd.Series(['A','B','A','B','A','B','A','B','A','B'])

print(df.head())

df.boxplot(by = 'X')

df.boxplot(column=['Col1','Col2'], by=['X','Y'])

# columns:按照数据的列分子图

# by:按照列分组做箱型图

d975c6fbe87b

d975c6fbe87b

plt.boxplot()绘制 分组汇总

完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值