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


猜你喜欢
- 本文实例为大家分享了pyqt5利用pyqtDesigner实现登录界面的具体代码,供大家参考,具体内容如下为便于操作 界面和逻辑分离逻辑类:
- 文章slice介绍append的机制slice tricksgo dataslicearray的语法: [4]int{1,2,3,4}, [
- 最近在研究文本挖掘相关的内容,所谓巧妇难为无米之炊,要想进行文本分析,首先得到有文本吧。获取文本的方式有很多,比如从网上下载现成的文本文档,
- 本文实例讲述了Python中绑定与未绑定的类方法。分享给大家供大家参考,具体如下:像函数一样,Python中的类方法也是一种对象。由于既可以
- 如下所示:后台关键代码:data = {}#keys与values分别为该数据的键数组,值的数组。这里循环为字典添加对应键值for k, v
- 1. 前言熟悉 Django 的朋友应该知道,我们可以通过「 inspectdb 」命令将数据库表反向生成 Model 并写入到文件中去比如
- torch.autograd.backward(variables, grad_variables=None, retain_graph=N
- 这里给大家分享一段使用PHP Socket 编程模拟Http post和get请求的代码,非常的实用,结尾部分我们再讨论下php模拟http
- 5月20日,微软正式提供了Windows XP下可用的雅黑字体下载,雅黑字体是一款近乎完美的字体,解决了宋体小文字无法辩认的问
- 人脸识别正在成为软件开发中的一种趋势。它有助于识别人脸并使应用程序更加健壮。在本教程中,我们将使用python和face_recogniti
- 一、BeautifulSoup4 基础知识补充BeautifulSoup4 是一款 python 解析库,主要用于解析 HTML
- 环境 python3.8pycharm2021.2知识点requests >>> pip install req
- 1. 介绍上传的图片文件:如pic = request.FILES["picture"]# pic是 <class
- MySQL的数据库管理工具非常多,有哪些优秀的GUI工具可以帮助提高工作效率?不妨看一看这5个MySQL GUI工具。1、Navicat f
- 首先我们看看数组的分类: 从数组的下标分为索引数组、关联数组 /* 索引数组,即通常情况下所说的数组 */ var ary1 = [1,3,
- FROM publish WHERE (id NOT IN (SELECT&
- python 消除序列的重复值,并保持原来顺序1、如果仅仅消除重复元素,可以简单的构造一个集合$ pythonPython 3.5.2 (d
- 最近一直在研究 Javascript 相关的技术。在《Javascript 高级程序设计》有篇章节着重阐述了优
- 比如:Set Connobject=nothing nothing如同英文单词字面意思,没有,没有那个,没有这个,没有东西 Set Conn
- 下面进行一个高维线性实验假设我们的真实方程是:假设feature数200,训练样本和测试样本各20个模拟数据集num_train,num_t