python绘制带置信区间的折线图

news/2024/11/24 22:50:19/

本文目录

  • 一、数据准备
  • 二、添加置信区间
  • 三、完整代码
  • 四、运行结果
  • 五、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 pltfont = {'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()

四、运行结果

在这里插入图片描述


五、python绘图往期系列文章目录

往期python绘图合集:
1、python绘制简单的折线图
2、python读取excel中数据并绘制多子图多组图在一张画布上
3、python绘制带误差棒的柱状图
4、python绘制多子图并单独显示
5、python读取excel数据并绘制多y轴图像
6、python绘制柱状图并美化|不同颜色填充柱子
7、python随机生成数据并用双y轴绘制两条带误差棒的折线图
8、Python绘制带误差棒的柱状图渐变色填充含数据标注(进阶)
9、python绘制散点图|散点大小和颜色深浅由数值决定
10、Matplotlib绘制漂亮的饼状图|python绘制漂亮的饼状图
11、python读取excel数据并用双y轴绘制柱状图和折线图,柱子用渐变颜色填充
12、python批量修改图片格式|python批量给图片增加水印|python批量给图片大小
13、python绘制气泡图|随机生成数据
14、python绘制密度图



http://www.ppmy.cn/news/84163.html

相关文章

开箱即用的ChatGPT替代模型,还可训练自己数据

一、普遍关注是什么? OpenAI 是第一个在该领域取得重大进展的公司,并且使围绕其服务构建抽象变得更加容易。然而,便利性带来了集中化、通过中介的成本、数据隐私和版权问题。 而数据主权和治理是这些新的LLM服务提供商如何处理商业秘密或敏…

【发电厂用JDHF-1010 合闸(分闸)监测继电器(220V/110V) JOSEF约瑟】

■JDHF-1000合闸(分闸)监测继电器主要用于各种保护和自动控制装置中,作为断路器操作运行状态的监测继电器。■交直流两用■监测继电器具有高内阻特性,可适应各种框架式断路器的合分回路。■快速导轨安装结构,适合各种导轨安装。■螺钉压接式端…

外购设备PDA

专业扫描引擎,扫尽千军万码 工业级专业扫描引擎,数据采集精准、快速、安全; 同时增加摄像头扫描,自带绿点定位,实现快速对准; 可识别破损,沾染灰渍等条码提高工作效率。 一、产品特点 216GB/…

国产易灵思FPGA的FIFO应用详解

一、软件设置界面 FIFO(First In First Out,即先入先出),是一种数据缓冲器,用来实现数据先入先出的读写。与 ROM 或 RAM 的按地址读写方式不同, FIFO 的读写遵循“先进先出”的原则,即数据按顺…

【Java学习记录-4】相关名词和概念记录(持续更新)

1 注解 Override是一个注解,可以帮助我们检查重写方法的方法声明的正确性 注意: 私有方法不能被重写(父类私有成员子类是不能继承的)子类方法访问权限不能更低(public > 默认 > 私有) 2 包 说明…

SSM(Spring篇)

Spring Spring的IOC和DI Spring简介 介绍 Spring的分层Java SE\EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programing:面向切面编程)为内核…

防抖和节流 含义及区别图文详解秒懂

防抖和节流都是为解决短时间内频繁触发某个功能函数而导致的性能问题。比如,触发频率过高而导致响应速度跟不上,以致出现延迟,假死或卡顿的现象。 防抖 图解:一件事情,计划5s以后触发,结果中途意外触发了…

MySQL8.0高级篇(下)-事务与日志和备份

文章目录 一、事务基础知识1、数据库事务概述1.1 基本概念1.2 事物的ACID特性1.3 事务的状态 2、如何使用事务2.1 显式事务2.2 隐式事务2.3 隐式提交数据的情况2.4 使用举例 3、事务隔离级别3.1 数据准备3.2 数据并发问题3.3 SQL中的四种隔离级别3.4 MySQL支持的四种隔离级别 4…