首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将yerr/xerr绘制为阴影区域,而不是错误条

将yerr/xerr绘制为阴影区域,而不是错误条
EN

Stack Overflow用户
提问于 2012-10-18 22:20:48
回答 2查看 135.4K关注 0票数 167

在matplotlib中,如何将错误绘制为阴影区域而不是错误条?

例如:

而不是

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-18 23:44:22

忽略示例图中点之间的平滑插值(这将需要进行一些手动插值,或者只是具有更高的数据分辨率),您可以使用pyplot.fill_between()

代码语言:javascript
复制
from matplotlib import pyplot as plt
import numpy as np

x = np.linspace(0, 30, 30)
y = np.sin(x/6*np.pi)
error = np.random.normal(0.1, 0.02, size=y.shape)
y += np.random.normal(0, 0.1, size=y.shape)

plt.plot(x, y, 'k-')
plt.fill_between(x, y-error, y+error)
plt.show()

另请参阅matplotlib examples

票数 176
EN

Stack Overflow用户

发布于 2012-10-31 20:27:52

这基本上就是same answer provided by Evert,但扩展了一下以展示fill_between的一些很酷的选项

代码语言:javascript
复制
from matplotlib import pyplot as pl
import numpy as np

pl.clf()
pl.hold(1)

x = np.linspace(0, 30, 100)
y = np.sin(x) * 0.5
pl.plot(x, y, '-k')


x = np.linspace(0, 30, 30)
y = np.sin(x/6*np.pi)
error = np.random.normal(0.1, 0.02, size=y.shape) +.1
y += np.random.normal(0, 0.1, size=y.shape)

pl.plot(x, y, 'k', color='#CC4F1B')
pl.fill_between(x, y-error, y+error,
    alpha=0.5, edgecolor='#CC4F1B', facecolor='#FF9848')

y = np.cos(x/6*np.pi)    
error = np.random.rand(len(y)) * 0.5
y += np.random.normal(0, 0.1, size=y.shape)
pl.plot(x, y, 'k', color='#1B2ACC')
pl.fill_between(x, y-error, y+error,
    alpha=0.2, edgecolor='#1B2ACC', facecolor='#089FFF',
    linewidth=4, linestyle='dashdot', antialiased=True)



y = np.cos(x/6*np.pi)  + np.sin(x/3*np.pi)  
error = np.random.rand(len(y)) * 0.5
y += np.random.normal(0, 0.1, size=y.shape)
pl.plot(x, y, 'k', color='#3F7F4C')
pl.fill_between(x, y-error, y+error,
    alpha=1, edgecolor='#3F7F4C', facecolor='#7EFF99',
    linewidth=0)



pl.show()
票数 148
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12957582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档