当前位置: 首页 > news >正文

python matlplotlib/seaborn 绘制曲线的平均值标准差阴影图

1. seaborn

旧版本(0.8.1)中使用tsplot,新版本中使用lineplot
直线代表均值,阴影代表mean±std(带有置信区间,参数ci)

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
sns.set()def smooth(data, wd=2):""":param data: ndarray,一维或二维:param wd::return:"""if not (isinstance(wd, int) and wd > 0):raise ValueError('wd must be a positive integer')elif 1 == wd:return dataelse:weight = np.ones(wd) / wdif 1 == data.ndim:return np.convolve(weight, data, "same")elif 2 == data.ndim:smooth_data = []for d in data:d = np.convolve(weight, d, "same")smooth_data.append(d)return np.array(smooth_data)else:raise ValueError('data must be a one-dimensional or two-dimensional ndarray')def get_data():returns1 = np.random.random((4, 100))        # 算法1,四个随机种子returns2 = np.random.random((4, 100)) + 1returns3 = np.random.random((4, 100)) + 2returns1 = smooth(returns1, 2)returns2 = smooth(returns2, 2)returns3 = smooth(returns3, 2)return returns1, returns2, returns3np.random.seed(11)
data = get_data()
label = ['algo1', 'algo2', 'algo3']
df=[]
ax = range(10, 100+10)   # x轴刻度
for i in range(len(data)):df.append(pd.DataFrame(data[i], columns=ax).melt(var_name='episode',value_name='return'))df[i]['algo'] = label[i]
df=pd.concat(df, ignore_index=True)
# print(df)
sns.lineplot(x="episode", y="return", hue="algo", data=df)
plt.legend(loc='upper right')
# 'best', 'upper right', 'upper left', 'lower left', 'lower right',
#             'right', 'center left', 'center , right', 'lower center', 'upper center', 'center')
plt.title("")
plt.show()#
# import seaborn as sns
# import matplotlib.pyplot as plt
# fmri = sns.load_dataset("fmri")
# fmri.head()
#
# sns.lineplot(data=fmri, x="timepoint", y="signal", hue="event")
# plt.show()

不进行平滑处理
在这里插入图片描述
平滑处理
在这里插入图片描述

matplotlib

画mean+/- standard deviation(std)的曲线图。

  1. 导入需要的库:matplotlib

  2. 用matplotlib.pyplot画均值曲线(图里的实线)

  3. 根据方差,用“fill_between”命令设定要填充曲线的上下限

  4. 用“fill”命令填充(图里的阴影部分)

(曲线颜色及线条粗细,填充颜色以及透明度都是在命令名后的括号里定义)
展示的结果图里画了三组数据,每组数据画法相同

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/229605.html

相关文章:

  • 【Linux基础IO篇】深入理解文件系统、动静态库
  • flink 写入 starrocks 报错 too many filtered rows attachment
  • Windows 安装 Maven
  • 一文读懂关于IPv6的那些事
  • 数据结构—队列的实现
  • Linux_shell脚本中的stty
  • HTML转PDF模板
  • Clickhouse学习笔记(14)—— Clickhouse监控
  • Vue3 + Three.js + gltf-pipeline大型园区场景渲染与3D业务
  • 基于FPGA的PS端的Si5340的控制
  • 安装 Lua 的 HTTP 库
  • Redis解决缓存问题
  • 七个合法学习黑客技术的网站,让你从萌新成为大佬
  • 【数据结构】面试OJ题——带环链表(数学推论)
  • PostgreSQL中pg_ctl工具的使用
  • 深入理解Kafka3.6.0的核心概念,搭建与使用
  • 【python】编程题小代码
  • 抖音小程序开发全攻略:如何规划项目和选择合适的开发团队
  • PSP - 蛋白质复合物结构预测 模版配对(Template Pair) 逻辑的特征分析
  • 喜报不断!箱讯平台获评2023年上海市促进现代航运服务业创新示范项目
  • SOME/IP学习笔记3
  • 【ATTCK】ATTCK开源项目Caldera学习笔记
  • 黑窗口连接远程服务
  • 好消息!2023年汉字小达人市级比赛在线模拟题大更新:4个组卷+11个专项,助力孩子更便捷、有效、有趣地备赛
  • SAP 70策略测试简介
  • uniapp+vue3+ts+vite+echarts开发图表类小程序,将echarts导入项目使用的详细步骤,耗时一天终于弄好了
  • 分布式服务器架构的优点有哪些?
  • Zephyr-7B论文解析及全量训练、Lora训练
  • 如何使用群晖虚拟机部署本地网页文件实现公网远程访问?
  • 初识RabbitMQ - 安装 - 搭建基础环境