Python 有没有一种方法可以在Matplotlib中从不接触的两个垂直函数之间进行着色?

Python 有没有一种方法可以在Matplotlib中从不接触的两个垂直函数之间进行着色?,python,matplotlib,plot,data-science,Python,Matplotlib,Plot,Data Science,我目前正在重建一个项目的温度剖面,该项目在y轴上显示高度,在x轴上显示温度波动,如下所示: 在图的中间有一条粗线,表示插值/模拟的温度剖面。插值轮廓的右侧和左侧是误差边界,基本上是实际数据,上面有+/-误差值。我想在这些误差范围之间加上阴影,显示插值的温度分布在这些范围内 然而,问题是它们从未接触过,因此本质上它们具有不同的x值。它们也是垂直运行的,所以plt.fill_在和axvspan之间(只生成一个矩形)都不起作用。我试着颠倒一些论点的顺序,因为我是垂直绘制的,它的工作原理如下: plt

我目前正在重建一个项目的温度剖面,该项目在y轴上显示高度,在x轴上显示温度波动,如下所示:

在图的中间有一条粗线,表示插值/模拟的温度剖面。插值轮廓的右侧和左侧是误差边界,基本上是实际数据,上面有+/-误差值。我想在这些误差范围之间加上阴影,显示插值的温度分布在这些范围内

然而,问题是它们从未接触过,因此本质上它们具有不同的x值。它们也是垂直运行的,所以
plt.fill_在
axvspan
之间(只生成一个矩形)都不起作用。我试着颠倒一些论点的顺序,因为我是垂直绘制的,它的工作原理如下:

plt1.plot(数据,高度,'b')#使第一个图显示温度剖面
plt1.绘图(最大西格玛、拉沃尔特、r、线宽=0.3)
plt1.绘图(minSigma,rawalt,'g',线宽=0.3)
plt1.填充(拉沃尔特、米西格玛、最大西格玛)
但事后看来,这可能是我在黑暗中的愚蠢之举。我被难住了。

为了扩展by,这里有一个完整的示例,展示了

导入matplotlib.pyplot作为plt
将numpy作为np导入
np.random.seed(0)
图=平面图(图尺寸=(6,8))
n=200
x=[0.0]
xa=[]
xe=[]
#生成一些随机、累积抖动的数据
对于范围(n-1)内的i:
x、 追加((np.random.random()-0.5)+x[i-1])
ma=10
#在生成的数据的每一侧添加一些变量错误
#并使用运行平均值平滑生成的数据
对于范围内的i(n-ma):
附加(总和(x[i:i+ma])/float(ma))
附加([xa[i]-2+(np.random.random()-0.5)*0.25,xa[i]+2+(np.random.random()-0.5)*0.25])
y=np.linspace(10,0,n-ma)
xe=np.数组(xe)
plt.图(xa,y,lw=0.75)
在nx(y,xe[:,0],xe[:,1],α=0.4)之间填充
plt.show()

使用有效的
fill\u betweenx
!我不敢相信我在看的时候竟然没发现!非常感谢。如果下面的答案解决了你的问题,请接受并投票