python+Matplotlib 绘制带置信区间的折线图
作者:项目申报小狂人 发布时间:2022-04-29 06:23:40
标签:python,带置信区间,折线图
在统计学和数据分析领域中,我们常常需要比较两个或多个样本数据之间的差异。而带置信区间的折线图则是一种直观且常用的展示数据差异的方式。在这篇文章中,我们将讲解如何使用 Python 和 Matplotlib 绘制一组带置信区间的折线图。
在本文中,我们将使用 numpy 模块生成随机数据,并使用 matplotlib 库实现数据可视化。具体而言,我们将绘制两组随机温度数据的折线图,并为每条折线添加置信区间。
一、数据准备
我们首先需要准备一些数据来绘制折线图。在这里,我们将生成两组随机气温数据和对应的标准误差:
import numpy as np
# 生成 x 坐标轴数据,表示时间范围
x = np.arange(0, 365)
# 生成两组随机气温数据和标准误差
temp_beijing = np.random.normal(15, 5, 365)
se_beijing = np.random.normal(1, 0.3, size=365)
temp_shanghai = np.random.normal(18, 4, 365)
se_shanghai = np.random.normal(0.8, 0.2, size=365)
二、添加置信区间
在统计学中,我们经常使用置信区间来表示样本的真实均值可能存在的范围。而在带置信区间的折线图中,每个数据点周围的一段区间即是该点的置信区间。
具体而言,我们可以使用 fill_between() 函数为折线添加置信区间。在这里,我们使用 95% 的置信水平,即对应于 1.96 个标准误差:
# 绘制带置信区间的折线图
fig, ax = plt.subplots(figsize=(10,6),dpi=300)
ax.plot(x, temp_1, color='red', label='City A')
ax.plot(x, temp_2, color='blue', label='City B')
ax.fill_between(x, temp_beijing-1.96*se_beijing, temp_beijing+1.96*se_beijing, alpha=0.2, color='red')
ax.fill_between(x, temp_shanghai-1.96*se_shanghai, temp_shanghai+1.96*se_shanghai, alpha=0.2, color='blue')
三、完整代码
import numpy as np
import matplotlib.pyplot as plt
font = {'family':'Times New Roman','size':24}
# 定义 x 坐标轴的数据
x = np.arange(1, 32)
# 定义两组气温数据以及对应的标准误差
temp_1 = np.random.normal(25, 3, 31)
se_1 = np.random.normal(1, 0.3, size=31)
temp_2 = np.random.normal(28, 4, 31)
se_2 = np.random.normal(0.8, 0.2, size=31)
# 绘制带置信区间的折线图
fig, ax = plt.subplots(figsize=(10,6),dpi=300)
ax.plot(x, temp_1, color='red', label='City A')
ax.plot(x, temp_2, color='blue', label='City B')
# 绘制置信区间
ax.fill_between(x, temp_1-1.645*se_1, temp_1+1.645*se_1, alpha=0.2, color='green')
ax.fill_between(x, temp_2-1.645*se_2, temp_2+1.645*se_2, alpha=0.2, color='blue')
# 设置图形标题和坐标轴标签
# plt.title('Average daily urban temperature change',font)
plt.xlabel('Day', font)
plt.ylabel('Temperature(℃)', font)
# 配置图例,将其放置在底部中央
plt.legend(loc='best', ncol=2, fontsize=18)
# 配置字体和字号
plt.rcParams['font.sans-serif'] = ['Times New Roman'] # 设置字体
plt.rcParams['font.size'] = 24 # 设置字号为 24
# 显示图形
plt.show()
四、运行结果
来源:https://blog.csdn.net/m0_58857684/article/details/130871314
0
投稿
猜你喜欢
- 前言本来准备讲解nginx和apache的日志的,但是个人不太推荐apache(纯属个人爱好),这里就不介绍apache的日志了。作为一名程
- 装饰器简介:装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方
- 引言上一篇文章中引入了消息队列对秒杀流量做削峰的处理,我们使用的是Kafka,看起来似乎工作的不错,但其实还是有很多隐患存在,如果这些隐患不
- 最近在做个大数据量的录入,为了方便客户输入,需要通过方向键来移动到输入框中,本代码仅供学习、研究,请勿用于其它用途:D下面贴的代码只是贴出来
- 有个小项目,碰到需要批量建立输入框的需求,本文利用WxPython建立批量录入框窗口研究了一下WxPython ,实现了这个功能。# cod
- “用户体验”作为舶来品在国内风靡已经有几个年头了,而且从目前情况来看仍旧会继续风靡一段时间。当某产品发布会上,发言人张口闭口就
- python中with可以明显改进代码友好度,比如:with open('a.txt') as f:  
- 简介特点请求你所要的数据,不多不少获取多个资源,只用一个请求描述所有的可能,类型系统几乎所有语言支持文档Graphene-PythonGra
- 一、在Yii中实现乐观锁乐观锁(optimistic locking)表现出大胆、务实的态度。使用乐观锁的前提是, 实际应用当中,发生冲突的
- 在域环境下我没配置成果,也许是域用户的原因,因为我在生产环境下搞的,更改域用户需要重启SQLServer ,所以这个方法放弃了,只能用证书形
- 今天有个学生问我:页面中使用GIF格式,失真太大,怎么办呢?这个问题比较简单啊,只要用JPG就可以了。我们常用的页面的图片格式有三种,GIF
- 最近在学习正则,一些比较有用的东西怕忘记,记下来,比较乱,想一条记录一条:正则表达式在线测试//匹配文本,这个偶尔比较好用,但是要小心字符中
- PHP程序员应该都知道连接MySQL数据库可以使用mysql_pconnect(永久连接)函数,使用数据库永久连接可以提高效率,但是实际应用
- 前言最近看到一个题目,看似很简单,其实里面有很深的意义,题目是Python 表达式 i += x 与 i = i + x 等价吗?如果你的回
- 本文介绍了在js和asp中使用FileSystemObject(fso)来: 创建、添加或删除数据,以及读取文件; 移动、复制和删除文件;创
- 本文实例讲述了Python写入CSV文件的方法。分享给大家供大家参考。具体如下:# _*_ coding:utf-8 _*_#xiaohei
- sort 包源码解读前言我们的代码业务中很多地方需要我们自己进行排序操作,go 标准库中是提供了 sort 包是实现排序功能的,这里来看下生
- aspjpeg组件实现加水印函数的调用方法: <%printwater "/images/水印图片.gif",&q
- 本文实例讲述了PHP实现逐行删除文件右侧空格的方法。分享给大家供大家参考,具体如下:在编辑整理代码的过程中发现网上的一些代码经常会有不少的右
- 代码如下:<?php$a;$b = false;$c = '';$d = 0;$e = null;$f = array