用python画盒图_python怎么画箱线图?Matplotlib数据可视化006:箱线图

前文回看:

箱线图又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。

箱线图API:

plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=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)

x:指定要绘制箱线图的数据;

notch:是否是凹口的形式展现箱线图,默认非凹口;

sym:指定异常点的形状,默认为+号显示;

vert:是否需要将箱线图垂直摆放,默认垂直摆放;

whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差;

positions:指定箱线图的位置,默认为[0,1,2…];

widths:指定箱线图的宽度,默认为0.5;

patch_artist:是否填充箱体的颜色;

meanline:是否用线的形式表示均值,默认用点来表示;

showmeans:是否显示均值,默认不显示;

showcaps:是否显示箱线图顶端和末端的两条线,默认显示;

showbox:是否显示箱线图的箱体,默认显示;

showfliers:是否显示异常值,默认显示;

boxprops:设置箱体的属性,如边框色,填充色等;

labels:为箱线图添加标签,类似于图例的作用;

filerprops:设置异常值的属性,如异常点的形状、大小、填充色等;

medianprops:设置中位数的属性,如线的类型、粗细等;

meanprops:设置均值的属性,如点的大小、颜色等;

capprops:设置箱线图顶端和末端线条的属性,如颜色、粗细等;

whiskerprops:设置须的属性,如颜色、粗细、线的类型等;

# 引入模块import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as plt# 中文乱码和坐标轴负号的处理plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']plt.rcParams['axes.unicode_minus'] = False# 加载数据path="C:/Users/Administrator/Desktop/exercise_data/train.csv"df=pd.read_csv(path)df.head()# 将缺失值删除df.dropna(subset=["Age"],inplace=True)# 画图plt.boxplot(x=df.Age, patch_artist=True, # 要求用自定义颜色填充盒形图,默认白色填充 showmeans=True, # 以点的形式显示均值 boxprops = {'color':'black','facecolor':'blue'}, # 设置箱体属性,填充色和边框色 flierprops = {'marker':'o','markerfacecolor':'red','color':'black'}, # 设置异常值属性,点的形状、填充色和边框色 meanprops = {'marker':'*','markerfacecolor':'y','markersize':'12'}, # 设置均值点的属性,点的形状、填充色 medianprops = {'linestyle':'--','color':'orange'}) # 设置中位数线的属性,线的类型和颜色)plt.xlabel("年龄",fontdict={'fontsize':12, 'color':'k'})plt.title("泰坦尼克号乘客年龄箱线图",fontdict={'fontsize':'18', 'color':'k'})

箱线图四分位数:

将n个数从小到大排序,下四分位数是四分之一位置对应的数,一次类推:

下四分位:Q1=(n+1)/4

中分位:Q2=(n+1)/2

上四分位:Q3=3*(n+1)/4

四分位距:IQR=Q3-Q1

下界:Q1-1.5IQR

上界:Q3+1.5IQR

定义超出上界或者下界的数据解释离群值或者异常值。

将乘客年龄按照仓位划分

# 按舱级排序,为了后面正常显示分组盒形图的顺序df.sort_values(by = 'Pclass', inplace=True)# 通过for循环将不同仓位的年龄人群分别存储到列表Age变量中Age = []Levels = df.Pclass.unique()for Pclass in Levels: Age.append(df.loc[df.Pclass==Pclass,'Age'])# 绘图plt.boxplot(x=Age, patch_artist=True, # 要求用自定义颜色填充盒形图,默认白色填充 labels = ['一等舱','二等舱','三等舱'], # 添加具体的标签名称 showmeans=True, # 以点的形式显示均值 boxprops = {'color':'black','facecolor':'blue'}, # 设置箱体属性,填充色和边框色 flierprops = {'marker':'o','markerfacecolor':'red','color':'black'}, # 设置异常值属性,点的形状、填充色和边框色 meanprops = {'marker':'*','markerfacecolor':'y','markersize':'12'}, # 设置均值点的属性,点的形状、填充色 medianprops = {'linestyle':'--','color':'orange'}) # 设置中位数线的属性,线的类型和颜色)plt.ylabel("年龄",fontdict={'fontsize':12, 'color':'k'})plt.title("泰坦尼克号乘客年龄箱线图",fontdict={'fontsize':'18', 'color':'k'})# 显示图形plt.show()

原文链接:【Python菜鸟进阶大神】Matplotlib数据可视化006:箱线图​mp.weixin.qq.comv2-c2634a197c2af94a9ed1d6a7e627d8a0_180x120.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值