目录
- 箱线图介绍
- Matplotlib中绘制箱线图的方法:boxplot
- 程序举例
- 总结
箱线图介绍
箱线图(Box-plot)又称为盒式图或箱型图,是一种用来显示一组数据分散情况的统计图,它能显示一组数据的上界、下界、中位数、上下四分位数以及异常值等。箱线图的各部分组成及其含义如下图所示。
关键术语说明 四分位数:
- 四分位数:就是把一组数据按照从小到大的顺序进行排列,然后分成四等份,处于三个分割点位置的数字就是四分位数;
- 第一四分位数(q1):又称“较小四分位数”或“下四分位数”,等于该样本中所有数值由小到大排列后第25%的数字,q1的位置 = 1+(n-1)x 0.25;
- 第二四分位数(q2):又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字,q2的位置= 1+(n-1)x 0.5;
- 第三四分位数(q3),又称“较大四分位数”或“上四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。q3的位置= 1+(n-1)x 0.75;
- 四分位间距(InterQuartile Range,IQR):第三四分位数与第一四分位数的差距(q3数据- q1数据);
- Whiske上限(大于该值即为异常值):q3数 + 1.5*IQR,(1.5表示超过的比例,是一个系数,可根据实际情况调整);
- Whisker下限(小于该值即为异常值):q1数 - 1.5*IQR。
首先对这组数据进行排序得到:[12, 30, 36, 40, 45, 50, 80],数组长度n为7;
q1的位置 = 1+(n-1)x 0.25=1 + 6*0.25 =2.5,所以q1的值为:30 + (36 - 30)*0.5 = 33
q2的位置 = 1+(n-1)x 0.5=1 + 6*0.5 =4,所以q2的值为40
q3的位置 = 1+(n-1)x 0.75=1 + 6*0.75 =5.5,所以q3的值为:45 + (50 - 45)*0.5=47.5
例2:一组数据[12, 45, 30, 80, 36, 50, 40, 43],分别求出q1、q2、q3
首先对这组数据进行排序得到:[12, 30, 36, 40, 43, 45, 50, 80],数组长度n为8;
q1的位置 = 1+(n-1)x 0.25=1 + 7*0.25 =2.75,所以q1的值为:30 + (36 - 30)*0.75 = 34.5
q2的位置 = 1+(n-1)x 0.5=1 + 7*0.5 =4.5,所以q2的值为40 + (43-40)*0.5=41.5
q3的位置 = 1+(n-1)x 0.75=1 + 7*0.75 =6.25,所以q3的值为:45 + (50 - 45)*0.25=46.25
在numpy中提供了quantile()函数,可以直接获取四分位数,例如np.quantile(x, 0.25)即可获取数组x中的q1值。
Matplotlib中绘制箱线图的方法:boxplot
boxplot(
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_ticks=True, autorange=False,
zorder=None, *, data=None):
关键参数含义说明如下:
- x:指定要绘制箱线图的数据,可以是一组数据也可以是多组数据;
- notch:是否以凹口的形式展现箱线图,默认非凹口;
- sym:指定异常点的形状,默认为蓝色的+号显示;
- vert:是否需要将箱线图垂直摆放,默认垂直摆放;
- whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差;
- positions:指定箱线图的位置,默认为range(1, N+1),N为箱线图的数量;
- widths:指定箱线图的宽度,默认为0.5;
- patch_artist:是否填充箱体的颜色,默认为False;
- meanline:是否用线的形式表示均值,默认用点来表示;
- showmeans:是否显示均值,默认不显示;
- showcaps:是否显示箱线图顶端和末端的两条线,默认显示;
- showbox:是否显示箱线图的箱体,默认显示;
- showfliers:是否显示异常值,默认显示;
- boxprops:设置箱体的属性,如边框色,填充色等;
- labels:为箱线图添加标签,类似于图例的作用;
- filerprops:设置异常值的属性,如异常点的形状、大小、填充色等;
- medianprops:设置中位数的属性,如线的类型、粗细等;
- meanprops:设置均值的属性,如点的大小、颜色等;
- capprops:设置箱线图顶端和末端线条的属性,如颜色、粗细等;
- whiskerprops:设置须的属性,如颜色、粗细、线的类型等;
- manage_ticks:是否自适应标签位置,默认为True;
- autorange:是否自动调整范围,默认为False;
程序举例
(1)绘制单个箱线图
import matplotlib.pyplot as plt
import numpy as np
x = np.array([12, 45, 30, 70, 36, 50, 40, 26, 38])
print(sorted(x))
a = np.quantile(x, 0.75) # 上四分之一数
b = np.quantile(x, 0.25) # 下四分之一数
print("平均数:", np.mean(x)) # 打印均值
print("中位数:", np.median(x)) # 打印中位数
print("上四分之一数:", a) # 打印上四分之一数
print("下四分之一数:", b) # 打印下四分之一数
up = a + 1.5 * (a - b) # 异常值判断标准
down = b - 1.5 * (a - b) # 异常值判断标准
x = np.sort(x) # 对原始数据排序
shangjie = x[x < up][-1] # 除了异常值外的最大值
xiajie = x[x > down][0] # 除了异常值外的最小值
print("上界:", shangjie) # 打印上界
print("up:", up)
print("down:", down)
print("下界:", xiajie) # 打印下界
plt.grid(True) # 显示网格
y = plt.boxplot(x, meanline=True, showmeans=True,
flierprops={"marker": "o", "markerfacecolor": "red", "markersize": 15}) # 绘制箱形图,设置异常点大小、样式等
plt.show() # 显示图
程序执行效果图:
控制台输出结果为:
[12, 26, 30, 36, 38, 40, 45, 50, 70]
平均数: 38.55555555555556
中位数: 38.0
上四分之一数: 45.0
下四分之一数: 30.0
上界: 50
up: 67.5
down: 7.5
下界: 12
(2)绘制多个箱线图
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randint(10, 100, size=(5, 9)) # 随机生成5行9列 [10, 100]之间的数
print(x) # 打印数据
plt.grid(True) # 显示网格
plt.boxplot(x, labels=list("ABCDEFGHI"), sym="r+", showmeans=True) # 绘制箱线图
plt.show() # 显示图片
程序执行效果图:
注:图中红色+号表示异常点,绿色三角形表示平均数。
控制台输出的打印结果为:
更多Python[[90 99 35 32 21 31 83 71 39]
[24 95 63 50 92 41 89 16 79]
[73 73 53 21 39 60 50 55 43]
[64 94 66 26 20 73 40 68 45]
[74 72 33 81 73 59 85 23 17]]
总结
相关推荐:
ChatGLM不能搜索网页内容,你真的了解它的局限性吗?,ai修复情侣
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
SEO重要性与企业互联网发展的必由之路,互联网营销推广平台设计
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
WPJam:打破网站管理的壁垒,打造极致用户体验,广东谷歌seo工具
SEO建议:如何通过优化提升网站流量,赢得市场竞争,自媒体网站免费推广平台
seo网站排名优化哪家好,seo网站优化平台 ,ai斗蟋
ChatGPT不能用了?了解这一背后的真相及解决方法,ai恐怖头像
SEO外链建设:提升网站排名的关键策略,ai偏执
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
文字生成AI:开启创意写作的新纪元
什么是“神马关键词”?如何用它提升你的网络营销效果?,新闻发布网站怎么做推广
二级泛站群,zblog二级泛站群 ,李宗盛ai
在线AI文章生成:智能写作的无限可能
seo诊断什么意思,seo诊断a5 ,约瑟夫ai
为什么做酒店seo,为什么做酒店 ,ai uehara下载
GPT人工智能-让未来触手可及的智慧之光,ai头花写真
SEO获客的秘诀:如何通过搜索引擎优化提升客户获取能力,厦门seo搜索优化排名
AI助手不需要登陆-畅享便捷生活,随时随地高效工作,ai客服 对话
seo相当于什么职业,seo相当于什么职业类别 ,usatisfy ai
seo跟sem是什么,seo和sem的概念 ,惠威的ai功能
ChatGPT错误处理与异常情况解决方法:让你的AI助手更加智能与可靠,智能ai鼠标ai智能语音
AI软件不用登录,让你的工作更高效轻松,智能ai写作改稿怎么改
URL泄露:如何防止信息泄露带来的严重后果,抖音推广营销服务多少钱
SEO自行:提升网站流量的秘密武器,邹平县个人网站建设建议
Bing搜索不能预览了?搜索引擎的新变革与挑战,ai制作一张窗花
WPS改写-轻松提升文档创作效率的秘密武器,推广网站的优势
未来写作新模式文章撰写AI如何助力内容创作
ChatGPT无法加载?检查网络并尝试重启,助您快速恢复畅通体验,burj ai
SEO已经成为数字营销的核心,如何利用SEO提升网站流量和转化率,含山网站优化推广
Chat启用后ESX连不上?解决方法一网打尽!,为什么AI续写这么离谱
为什么seo这么麻烦,seo是什么意思 为什么要做seo ,dota1ai地图命令选ai
怎么查一篇文章是不是AI写的?你需要这几个关键方法!
ChatGPT网页打不开?快来看看这些解决办法,轻松恢复正常访问!,ai金色包装
AI翻译工具的革命-ChatGPT等技术让语言互通无碍,淘宝ai写作检测准吗
seo网站排名关键词优化,seo网站关键词优化怎么做 ,ai回廊
SEO攻略:搜索引擎优化,快速提升网站排名,网站推广网站优化费用
SEO目标:让您的网站轻松登顶搜索引擎,优化购物网站的搜索
AI智能工具的无限可能:未来已来,你准备好了吗?
SEO特点与实施策略:提升网站流量与排名的关键,定西抖音seo价格查询
ChatGPTApp怎么调大字体?提升阅读体验,让文字更清晰,推荐ai音频
ChatGPT无法加载?检查您的网络设置并尝试重启Chat,ai写作怎么写作文的
SEO怎么设置:让你的网站快速登上搜索引擎首页的秘密,Ai压印分色
ChatGPT中文版下载,开启智能对话新体验,婚纱ai男
ChatGPT免费订阅的使用限制:其潜力与挑战,ai辅助线无法对齐画板
怎么看文章是不是AI生成的?揭秘背后的玄机与技巧
SEO外包:提升网站排名与品牌曝光的最佳选择,大创建设网站
seo监控什么意思,seo数据监控 ,ai panda眼镜架
为什么seo推广那么多,seo推广难吗 ,东莞ai听译平台
SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载