python:matplotlib数据可视化--箱线图

tech2025-12-05  16

箱线图一般是用来展现数据的分布(如上下四分值,中位数等).同时,也可以用箱线图来反映数据的异常情况。

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 # 为箱线图添加标签,类似于图例的作用; flierprops # 设置异常值的属性,如异常点的形状、大小、填充色等; medianprops # 设置中位数的属性,如线的类型、粗细等; meanprops # 设置均值的属性,如点的大小、颜色等; capprops # 设置箱线图顶端和末端线条的属性,如颜色、粗细等; whiskerprops # 设置须的属性,如颜色、粗细、线的类型等

1 箱线图的绘制 案例:整体乘客的年龄箱线图 #导入第三方模块 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline

#读取Titanic数据集 f=open(r’E:\数据分析小灶\小灶商业数据分析LV1等多个文件等多个文件\小灶商业数据分析LV1等多个文件\小灶商业数据分析LV2\模块3 :数据概述与数据可视化\16第7课:Matplotlib学习之数据可视化\16-06titanic_train.csv’) titanic=pd.read_csv(f)

#不放删除含有缺失年龄的观察 titanic.dropna(subset=[‘Age’],inplace=True)

#设置绘图风格 plt.style.use(‘ggplot’)

#让中文和负号的正常显示 plt.rcParams[‘font.sans-serif’] = [‘SimHei’] 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=‘on’,right=‘off’)

#显示图形 plt.show()

得出结论:乘客的平均年龄在30岁,四分之一的人在20岁以下,四分之一的人在38岁以上。均值(红色菱形)略高于中位数(黄色)。红色的异常值,年龄均在64岁以上

不同等级仓的年龄箱线图 titanic.sort_values(by = ‘Pclass’,inplace=True) #用Pclass表示舱位级别

#通过for循环将不用仓位的年龄人群分别存储到列表的Age变量中 Age = [] Levels = titanic.Pclass.unique() #用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()

结论:仓位

最新回复(0)