为了账号安全,请及时绑定邮箱和手机立即绑定

如何用 seaborn 绘制阴影误差带?

如何用 seaborn 绘制阴影误差带?

德玛西亚99 2022-10-18 17:26:25
我希望创建一个如下图,在其中显示一些值以及标准偏差。我有两组值,包含通过两种不同方法获得的平均值和标准差。我想用seaborn做这个,但我不知道具体怎么做,因为官方示例使用了我不熟悉的 pandas DataFrame 对象。例如,考虑以下起始代码:import seaborn as snsmean_1 = [10, 20, 30, 25, 32, 43]std_1 = [2.2, 2.3, 1.2, 2.2, 1.8, 3.5]mean_2 = [12, 22, 30, 13, 33, 39]std_2 = [2.4, 1.3, 2.2, 1.2, 1.9, 3.5]谢谢,G。
查看完整描述

1 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

这是使用给定数据创建此类图的最小示例。由于矢量化和广播,使用 numpy 简化了代码。

import matplotlib.pyplot as plt

import numpy as np


mean_1 = np.array([10, 20, 30, 25, 32, 43])

std_1 = np.array([2.2, 2.3, 1.2, 2.2, 1.8, 3.5])


mean_2 = np.array([12, 22, 30, 13, 33, 39])

std_2 = np.array([2.4, 1.3, 2.2, 1.2, 1.9, 3.5])


x = np.arange(len(mean_1))

plt.plot(x, mean_1, 'b-', label='mean_1')

plt.fill_between(x, mean_1 - std_1, mean_1 + std_1, color='b', alpha=0.2)

plt.plot(x, mean_2, 'r-', label='mean_2')

plt.fill_between(x, mean_2 - std_2, mean_2 + std_2, color='r', alpha=0.2)

plt.legend()

plt.show()

//img1.sycdn.imooc.com//634e716f0001449814830817.jpg

另一个例子:


import matplotlib.pyplot as plt

import numpy as np

import seaborn as sns


sns.set()

N = 100

x = np.arange(N)

mean_1 = 25 + np.random.normal(0.1, 1, N).cumsum()

std_1 = 3 + np.random.normal(0, .08, N).cumsum()


mean_2 = 15 + np.random.normal(0.2, 1, N).cumsum()

std_2 = 4 + np.random.normal(0, .1, N).cumsum()


plt.plot(x, mean_1, 'b-', label='mean_1')

plt.fill_between(x, mean_1 - std_1, mean_1 + std_1, color='b', alpha=0.2)

plt.plot(x, mean_2, 'r--', label='mean_2')

plt.fill_between(x, mean_2 - std_2, mean_2 + std_2, color='r', alpha=0.2)


plt.legend(title='title')

plt.show()

//img1.sycdn.imooc.com//634e717a0001bb9419140863.jpg

查看完整回答
反对 回复 2022-10-18
  • 1 回答
  • 0 关注
  • 352 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号