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

news2024/11/27 6:21:51

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 data
    else:
        weight = np.ones(wd) / wd
        if 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)) + 1
    returns3 = np.random.random((4, 100)) + 2
    returns1 = smooth(returns1, 2)
    returns2 = smooth(returns2, 2)
    returns3 = smooth(returns3, 2)
    return returns1, returns2, returns3


np.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.coloradmin.cn/o/1207805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

攻略 | 参与Moonbeam Ignite Ecosystem Tour

Moonbeam联合Moonwell和Beamswap一起举办社区链上活动,旨在让社区用户通过任务来探索Moonbeam、Moonwell、Beamswap平台。在了解如何使用的同时,参与任务挑战还有机会分得 1700 USDC 奖池 🎁 的奖励!我已经完成全部任务&#xff0…

AR人脸道具SDK,打造极致用户体验

为了满足企业在AR领域的应用需求,美摄科技推出了一款领先的AR人脸道具SDK,旨在帮助企业快速、高效地开发出具有丰富玩法体验的AR应用,从而提升企业的竞争力和市场份额。 一、丰富的AR人脸道具,满足多样化需求 美摄科技AR人脸道具…

怎么阅读芯片源代码(rtl)

一个rtl可以是这样的: 经常大家习惯于算法和数据结构。对于设计的部分,落实不一定多。 另外一个rtl也可以是这样的: 所以从不同的层面来讲,一个Rtl有不同的表述。 首先大概把所有的部分浏览一遍,看看有些什么。 其次…

喜报不断!箱讯平台获评2023年上海市促进现代航运服务业创新示范项目

近期,可谓捷报频传!在箱讯科技子公司苏州箱讯获评苏州市软件和信息服务业 “头雁”培育企业没过多久,就又迎来好消息! 日前,上海市交通委发布“2023年上海市促进现代航运服务业创新项目”评选结果,箱讯An…

抖音小程序开发全攻略:如何规划项目和选择合适的开发团队

在数字化时代,抖音小程序成为企业推广和服务的重要渠道。本文将为您提供抖音小程序开发的全面攻略,重点介绍如何规划项目和选择合适的开发团队,并附有一些关键的技术代码示例。 1. 项目规划 在开始抖音小程序开发之前,详细的项…

能够导出源代码的低代码平台有哪些?

目录 一、源码的优势 (1)定制性需求: (2)适应未来需求变化: (3)安全和可靠性: (4)高级功能和集成: 二、支持源代码的厂商 目前国内大多…

Javaweb开发 利用servlet+jsp+jdbc+tomcat数据库实现登录功能

前言:很久没更新了,今天给大家分享一个Java web的小案例,是一个登录页面,利用Login控制类和JDBC连接数据库,并判断用户名密码是否正确,项目最终部署在Tomcat上。 先看效果 正文 一、前期工作 1.首先我们…

Netty+SpringBoot 打造一个 TCP 长连接通讯方案

项目背景 最近公司某物联网项目需要使用socket长连接进行消息通讯,捣鼓了一版代码上线,结果BUG不断,本猿寝食难安,于是求助度娘,数日未眠项目终于平稳运行了,本着开源共享的精神,本猿把项目代码…

Excel-快速将公式运用到一整列

先在该列的第一个单元格里写好公式,然后单击该单元格 在图中标示的地方输入我们需要填充的单元格区域 同时按住Ctrl和Enter键,这时需要填充的单元格区域就都被选中了 然后单击一下图中公式的后面,再次按下Ctrl和Enter键,这样就完…

今日最新版早安问候大全,创意好看的早上好祝福图片带字温馨

1、阳光照,鸟欢叫,小懒猪,起床了,伸懒腰,笑一笑,深呼吸,精神好,开心到,欢乐抱,幸福随,乐淘淘,好运伴,祝福来,每…

《线性代数》科教版教材必会习题

出一期比较尴尬的博客——有关线代教材的课后题总结~ 之所以说尴尬,主要有两个主要原因:这本科教版第三版的教材,整体看起来并不是那么舒服,甚至被我们的老师吐槽过,更好地选择时同济版的那本紫书——我们学校的新生这…

windows10上使用Visual Studio对树莓派进行交叉编译示例

本文主要介绍通过Visual Studio对树莓派进行交叉编译的方法。 1 环境 宿主机: 系统:Windows10 开发平台:Visual Studio 2022 (我用的是社区版) VisualGDB: VisualGDB - Download (我下的试用版本) GNU工具链: Prebuilt GNU toolchain f…

中国人民大学与加拿大女王大学金融硕士——热爱会穿越时间,埋在心底的读研梦也是

随着时光的流转,我们都在跌跌撞撞中成长,改变,但有一种东西是永恒的,那就是我们对梦想的渴望。那些被尘封的读研梦想,如同穿越漫长岁月,等待在未来的某一天重见天日。梦想,就如同热爱一样&#…

【C#学习】串口编程

文章目录 第一步:加入串口控件第二步:加入模块第三步:编写相关函数功能获取所有串口资源设置和打开关闭串口发送字符串(string)发送byte检查串口状态接受byte查询所有可用串口 第一步:加入串口控件 第二步&…

Git 工作流程、工作区、暂存区和版本库

目录 Git 工作流程 Git 工作区、暂存区和版本库 基本概念 Git 工作流程 本章节我们将为大家介绍 Git 的工作流程。 一般工作流程如下: 克隆 Git 资源作为工作目录。在克隆的资源上添加或修改文件。 如果其他人修改了,你可以更新资源。在提交前查看…

MySQL--主从复制和读写分离

MySQL主从复制和读写分离相关知识 1.什么是读写分离 读写分离,基本的原理是让主数据库处理事务性增、改、删操作( INSERT、UPDATE、DELETE) ,而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 2.为什么要…

【unity】网格描边方法

【unity】网格描边方法 介绍对模型四边网格的三种描边方法:包括纯Shader方法、创建网格方法和后处理方法。于增强场景中3D模型的轮廓,使其在视觉上更加突出和清晰。这种效果可以用于增强三维场景中的物体、角色或环境,使其在视觉上更加吸引人…

wordcloud出现ValueError: Only supported for TrueType fonts

方法1:换一个版本的wordcloud即可,实测windows在1.8.2.2版本上不会报错。 方法2:还可以尝试其他博客中的解决方案,自己下个字体的TTF文件,让后font_path直接写字体文件路径。(此方法未见效)

11月14日星期二今日早报简报微语报早读

11月14日星期二,农历十月初二,早报微语早读。 1、江西南城县:限时发放购房补贴政策,三孩家庭每平方米最高补贴500元; 2、2023年中国内地电影市场累计票房突破500亿元; 3、市场监管总局:在全国…