1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用python中的库matplotlib绘制箱线图(boxplot)

使用python中的库matplotlib绘制箱线图(boxplot)

时间:2024-07-12 05:09:16

相关推荐

使用python中的库matplotlib绘制箱线图(boxplot)

文章目录

数据准备相关概念:Q1,Q2,Q3,IQR,QQ1,QQ3绘制箱线图分析箱线图

数据准备

假设有如下数据:

我们要分别绘制出age这列数据的箱线图和%fat这列数据的箱线图。

相关概念:Q1,Q2,Q3,IQR,QQ1,QQ3

Q1,Q2,Q3:

将数据从小到大排序,可以把这份数据平均分成四份,其中第一份数据最后一个数就是Q1,也叫做下四分位数,第二份数据最后一个数就是Q2,也叫中位数,第三份数据的最后一个数就是Q3,也叫上四分位数。

至此,我们可以想象,在一条数轴上,我们已经标出了Q1,Q2,Q3。

IQR,QQ1,QQ3:

IQR=Q3-Q1。被称之为四分位距。QQ1=Q1-1.5IQRQQ3=Q3+1.5IQR

其中:

IQR被称之为四分位距。[QQ1,QQ3]被称之为内限,即如果数据落在这个范围之外,被看作是异常值。因此QQ1和QQ3两个点也被称之为异常值截断点。

把QQ1和QQ2也标记在数轴上

小总结:

显然那五个标记在数轴上的从小到大排列会是这样的:QQ1,Q1,Q2,Q3,QQ3。

在QQ1左边或者QQ3右边的数据我们称之为异常数据。

绘制箱线图

import pandas as pdimport matplotlib.pyplot as pltimport numpy as npdata=pd.read_csv("agebodyfat.csv")

figure,axis=plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=80)list=["age","%fat"]for i in range(2):axis[i].boxplot(data[list[i]],showmeans=True,boxprops={'color': 'red'},flierprops={'marker': 'o', 'mfc': 'red', 'color': 'black'},)axis[i].grid(linestyle="--",alpha=0.5)axis[i].set_title(list[i])axis[i].set_xticks([])plt.suptitle("boxplot of age and %fat")plt.show()

绘制的结果如下:

分析箱线图

很直观可以发现两组数据都是Q2,Q3距离比较近,所以可以知道在Q2~Q3区间上数据分布比较密集。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。