Matplotlib 绘图 (二)
Matplotlib 绘制箱线图
(一) Matplotlib 绘制柱状图
(二) Matplotlib 绘制箱线图
参考文献:
1.https://www.cnblogs.com/shanger/p/13041426.html
2.https://blog.csdn.net/weixin_44613728/article/details/115190556
Matplotlib 绘制箱线图
- Matplotlib 绘制箱线图
- 一、 plt.boxplot() 参数详解
- 二、 示例
- 1. 绘制多个分组箱线图
- 2. 在多个分组箱线图上叠加散点图
一、 plt.boxplot() 参数详解
Python 绘制箱线图主要用 matplotlib 库里 pyplot 模块里的 boxplot() 函数。
plt.boxplot(x, # 指定要绘制箱线图的数据;notch=None, # 是否是凹口的形式展现箱线图,默认非凹口;sym=None, # 指定异常点的形状,默认为+号显示;vert=None, # 是否需要将箱线图垂直摆放,默认垂直摆放;whis=None, # 指定上下须与上下四分位的距离,默认为1.5倍的四分位差;positions=None, # 指定箱线图的位置,默认为[0,1,2…];widths=None, # 指定箱线图的宽度,默认为0.5;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_xticks=True, #autorange=False, #zorder=None, #hold=None, #data=None) #
二、 示例
1. 绘制多个分组箱线图
plt.boxplot(x,…)中的 x 是[ [1, 2, 3], [1,2,3,4,5], [8,9] ]格式的,即3个箱线图各自的分组数据。
参数 positions=(1,1.4,1.8,2.8,3.2,3.6,4.6,5,5.4):将同一组的三个箱间隔设置为0.4,不同组间隔设为1,widths=0.3:每个箱宽度为0.3
#...准备数据等代码略...
bias = []for j in range(0,3):for t in range(0,3):bias.append(list(Bias[t][j]))#...代码略...fig = plt.figure()ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])ax.set_ylabel('偏差Bias')ax.set_xlabel('物候提取算法')#(0.2,0.2,0.2) 分别为该颜色的RGB值,(均为0~1的数据)color_list = [(0.2, 0.2, 0.2), (0.2*2, 0.2*2, 0.2*2), (0.2*4, 0.2*4, 0.2*4), (0.2, 0.2, 0.2), (0.2*2, 0.2*2, 0.2*2), (0.2*4, 0.2*4, 0.2*4), (0.2, 0.2, 0.2), (0.2*2, 0.2*2, 0.2*2), (0.2*4, 0.2*4, 0.2*4)]bp = plt.boxplot(bias,patch_artist=True,widths=0.3,positions=(1,1.4,1.8,2.8,3.2,3.6,4.6,5,5.4),showmeans=True)# 将9个箱分别上色
for patch, color in zip(bp['boxes'], color_list):patch.set_facecolor(color)
ax.set_ylabel('偏差Bias')ax.set_xlabel('物候提取算法')# 替换横坐标x的值x_position = [1, 2.8, 4.6]x_position_fmt = ["AG算法", "SG算法", "DL算法"]# 第一个参数为显示位置,第二个参数为显示的值plt.xticks([i + 0.8 / 2 for i in x_position], x_position_fmt)labels = ["CSIF数据集","GOMESIF数据集","GOSIF数据集"]plt.legend(bp['boxes'], labels, loc='best') # 绘制表示框,右下角绘制# plt.savefig(fname="pic.png", figsize=[10, 10])#显示网格plt.grid(linestyle="--", alpha=0.5) # 绘制图中虚线 透明度0.3plt.show()
运行结果:
2. 在多个分组箱线图上叠加散点图
参考文献:
1.https://blog.csdn.net/weixin_40787712/article/details/123516154
使用 “zorder=2”这样的确定叠加的图层的先后次序,数字越大,越后。
#...准备数据等代码略...
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
# 画2行3列的子图
ax1 = plt.subplot(2, 3, 1) # 海北站SOS箱线图
# 准备数据
bias = []
for j in range(0, 3):for t in range(0, 3):bias.append(list(Bias[t][j][0][0:7]))
print(bias,'\n')
PlotBiasGndTiResu(bias, ax1, "lower right")
ax1.set_title('海北站SOS')
ax1.set_ylabel('残差')
# 将箱线图统计的所有点绘制到图上
# spotx是各个箱线图所有点的横坐标
spotx = [[1,1,1,1,1,1,1],[1.4,1.4,1.4,1.4,1.4,1.4,1.4],[1.8,1.8,1.8,1.8,1.8,1.8,1.8],[2.8, 2.8, 2.8, 2.8, 2.8, 2.8, 2.8],[3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2],[3.6,3.6,3.6,3.6,3.6,3.6,3.6],[4.6,4.6,4.6,4.6,4.6,4.6,4.6],[5,5,5,5,5,5,5],[5.4,5.4,5.4,5.4,5.4,5.4,5.4]]
for j in range(0, 3):for t in range(0, 3):#点的大小:s=10,画图层的先后:zorder=2,数字越大越后画plt.scatter(spotx[j*3+t],bias[j*3+t], c='black', s=10, zorder=2)
plt.show()
#...其它子图代码略....def PlotBiasGndTiResu(bias, ax, loca):# plt.boxplot(x,...)中的 x 是[ [1, 2, 3], [1,2,3,4,5], [8,9] ]格式的,即3个箱线图各自的分组数据。
# 参数 positions=(1,1.4,1.8,2.8,3.2,3.6,4.6,5,5.4):将同一组的三个箱间隔设置为0.4,不同组间隔设为1,widths=0.3:每个箱宽度为0.3
# 多图层叠加时,控制画图层的先后:zorder=1,数字越大越后画
bp = plt.boxplot(bias, patch_artist=True, widths=0.3,
positions=(1, 1.4, 1.8, 2.8, 3.2, 3.6, 4.6, 5, 5.4),
showmeans=False, medianprops={'lw': 1, 'color': 'black'}, zorder=1,
# 设置异常点属性,如点的形状、填充色和点的大小
flierprops = {'marker':'o','markerfacecolor':'black', 'markersize':3})color_list = ["orange", "cornflowerblue", "deeppink","orange", "cornflowerblue", "deeppink","orange", "cornflowerblue", "deeppink"]
# 将9个箱分别上色
for patch, color in zip(bp['boxes'], color_list):patch.set_facecolor(color)
# 替换横坐标x的值
x_position = [1, 2.8, 4.6]
x_position_fmt = ["AG算法", "SG算法", "DL算法"]
# 第一个参数为显示位置,第二个参数为显示的值
plt.xticks([i + 0.8 / 2 for i in x_position], x_position_fmt)labels = ["CSIF数据集", "GOMESIF数据集", "GOSIF数据集"]
plt.legend(bp['boxes'], labels, loc=loca) # 绘制表示框,右下角绘制# 显示网格
plt.grid(linestyle="--")
运行结果:
Matplotlib 绘图 (二)相关推荐
- 【机器学习】python使用matplotlib进行二维数据绘图并保存为png图片
端到端机器学习导航: [机器学习]python借助pandas加载并显示csv数据文件,并绘制直方图 [机器学习]python使用matplotlib进行二维数据绘图并保存为png图片 [机器学习]p ...
- Matplotlib(二)绘图生命周期
上篇 python matplotlib入门(一)主要介绍了matplotlib的workflow, 这一篇将主要介绍 matplotlib 绘图的生命周期,只有了解了matplotlib 的内部 ...
- python笔记4(矩阵和随机数 matplotlib绘图基础散点图折线图柱状图)
记录python听课笔记 文章目录 记录python听课笔记 一,矩阵 1.1矩阵创建 1.2矩阵运算 矩阵的乘法 矩阵转置T 矩阵求逆I 二,随机数 2.1随机数模块 numpy.random 2. ...
- 16个matplotlib绘图实用小技巧!
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 本文主要 16 个 Matplotlib 绘图实用的小技巧. 1. 添加标题-ti ...
- Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性
CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...
- Python基础知识学习笔记——Matplotlib绘图
Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...
- Matplotlib 绘图秘籍
原文:Matplotlib Plotting Cookbook 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN ...
- Python+matplotlib绘图时显示中文的设置方法
封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: =================== 在使用Python+mat ...
- python ppt 绘图_Python数据分析-Matplotlib绘图基础
本文结构: 一.Matplotlib绘图基础及中文乱码解决 二.如何利用pandas绘图? 三.如何利用notebook制作分析报告? 图形在我们日常生活中无处不在.如果没有可视化,就是一些数字罗列, ...
- Python数据可视化之matplotlib绘图教程
目录 一.快速绘图 1. 折线图 2. 柱状图 3. 饼状图 4. 散点图 5. 图片保存 二.基本设置 1. 图片 2. 坐标轴 3. 刻度 4. 边距 5. 图例 6. 网格 7. 标题 8. 文 ...
最新文章
- 使用mysql_fetch_row()以数组的形式返回查询结果
- Sentinel 1.5.0 正式发布,引入 Reactive 支持
- django 分页功能
- 男人对待恋爱的不同阶段......
- Linux 文件颜色含义
- 网易严选Java开发三面面经:南京黑马java培训怎么样
- python绘制图像的参数_图像绘制.draw.line():系统错误:新样式getargs格式,但参数不是tup...
- php递归删除空数组,php 递归删除非空文件夹示例
- 【转载】C# 中的各种命名规范
- HTML - 03 网页元素的属性
- Windows获取本地安装软件详细信息(对标卸载程序控制面板)
- matlab-基础 复数 实部、虚部、模、共轭、辐角
- CAD 偏移和复制、移动的区别
- 服务器设计之SEDA架构
- 一百行代码实现的HTML5登录页面
- react 父组件调用子组件方法--通过 props 实现
- 5G的关键技术与所面临的挑战
- 超级计算机发展 小记
- 互联网快讯:阿里云发布第四代神龙架构;微信支付正式推出品牌视频号;猿辅导加速布局素质教育
- 计算机术语alu,计算机术语完全介绍
热门文章
- 芯天下8bit MCU
- 从零开始实现3D软光栅渲染器 (1) 简介
- 首份财报营收增长扭亏为盈,为何怪兽充电的出路依旧“迷雾重重”
- SQL 基础知识扫盲
- 我写的新闻——Adobe校园行西工大站圆满落幕
- java横向导出excel_JavaWeb POI 导出Excel
- 霹雳灯双灯c语言程序,单片机霹雳游侠灯源程序
- IR-61|1895075-34-9|七甲川吲哚类花菁染料near-infrared fluorophore
- 微信小程序开发者工具使用vant组件
- 铁矿石再度领跌商品,LPG认沽上涨3倍,MTO季节性上涨2022.6.22