博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零开始学Python数据分析【12】-- matplotlib(箱线图)
阅读量:6073 次
发布时间:2019-06-20

本文共 2947 字,大约阅读时间需要 9 分钟。

hot3.png

一、boxplot函数的参数解读

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:设置须的属性,如颜色、粗细、线的类型等;

二、箱线图的绘制

titanic:不同等级仓位的年龄箱线图

  • 整体乘客的年龄箱线图

# 导入第三方模块import pandas as pdimport matplotlib.pyplot as plt# 读取Titanic数据集titanic = pd.read_csv('titanic_train.csv')# 检查年龄是否有缺失any(titanic.Age.isnull())# 不妨删除含有缺失年龄的观察titanic.dropna(subset=['Age'], inplace=True)# 设置图形的显示风格plt.style.use('ggplot')# 设置中文和负号正常显示plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'plt.rcParams['axes.unicode_minus'] = False# 绘图:整体乘客的年龄箱线图plt.boxplot(x = titanic.Age, # 指定绘图数据            patch_artist=True, # 要求用自定义颜色填充盒形图,默认白色填充            showmeans=True, # 以点的形式显示均值            boxprops = {'color':'black','facecolor':'#9999ff'}, # 设置箱体属性,填充色和边框色            flierprops = {'marker':'o','markerfacecolor':'red','color':'black'}, # 设置异常值属性,点的形状、填充色和边框色            meanprops = {'marker':'D','markerfacecolor':'indianred'}, # 设置均值点的属性,点的形状、填充色            medianprops = {'linestyle':'--','color':'orange'}) # 设置中位数线的属性,线的类型和颜色# 设置y轴的范围plt.ylim(0,85)# 去除箱线图的上边框与右边框的刻度标签plt.tick_params(top='off', right='off')# 显示图形plt.show()

                     

对于所有乘客而言,从图中容易发现,乘客的平均年龄在30岁,有四分之一的人低于20岁,另有四分之一的人超过38岁,换句话说,有一半的人,年龄落在20~38岁之间;从均值(红色的菱形)略高于中位数(黄色虚线)来看,说明年龄是有偏的,并且是右偏;同时,我们也会发现一些红色的异常值,这些异常值的年龄均在64岁以上

  • 不同等级仓的年龄箱线图

# 按舱级排序,为了后面正常显示分组盒形图的顺序titanic.sort_values(by = 'Pclass', inplace=True)# 通过for循环将不同仓位的年龄人群分别存储到列表Age变量中Age = []Levels = titanic.Pclass.unique()for Pclass in Levels:    Age.append(titanic.loc[titanic.Pclass==Pclass,'Age'])# 绘图plt.boxplot(x = Age,             patch_artist=True,            labels = ['一等舱','二等舱','三等舱'], # 添加具体的标签名称            showmeans=True,             boxprops = {'color':'black','facecolor':'#9999ff'},             flierprops = {'marker':'o','markerfacecolor':'red','color':'black'},            meanprops = {'marker':'D','markerfacecolor':'indianred'},            medianprops = {'linestyle':'--','color':'orange'})# 显示图形plt.show()

                

如果对人群的年龄按不同的舱位来看,我们会发现一个明显的趋势,就是舱位等级越高的乘客,他们的年龄越高,三种舱位的平均年龄为38、30和25,说明年龄越是偏大一点,他们的经济能力会越强一些,所买的舱位等级可能就会越高一些。同时,在二等舱和三等舱内,乘客的年龄上存在一些异常用户。

微信关注

 

转载于:https://my.oschina.net/yezijun/blog/1602897

你可能感兴趣的文章
MySQL数据库导入导出常用命令
查看>>
低版本Samba无法挂载
查看>>
Telegraf+Influxdb+Grafana构建监控平台
查看>>
使用excel 展现数据库内容
查看>>
C#方法拓展
查看>>
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>
hdu 2191 (多重背包+二进制优化)
查看>>
Linux常用命令大全
查看>>
python练习笔记
查看>>
Python IO编程-组织文件
查看>>
org/springframework/core/MethodClassKey
查看>>
Linux软件安装包中devel与非devel包之间的区别
查看>>
logback与Spring、SpringMVC结合使用教程(转) logback good
查看>>
ZipDemo
查看>>
浏览器中关于事件的那点事儿(转)
查看>>
[转]Vim 复制粘贴探秘
查看>>
4.元组
查看>>
为什么Dotnet Core的DI默认是在控制器中注入
查看>>
[Go] golang连接redis测试
查看>>