16

我正在寻找一种在 matplotlib 中使用 fill_between 来在 x1 和 x2 之间而不是 y1 和 y2 之间着色的方法。

我有一系列对数图,深度在 Y 轴上,测量变量在 x 轴上,并且希望在绘制线的左侧或右侧(而不是上方或下方)着色。

我确信这应该可以通过 fill_between 实现,但不能使其工作。

举个例子:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec


gs = gridspec.GridSpec(3, 3)
ax1 = plt.subplot(gs[0, :])
ax2 = plt.subplot(gs[1:, 1])

y=np.random.uniform(0,1,30)
x=np.arange(30)

ax1.set_ylabel('Plot 1')
ax1.plot(x,y)
ax1.fill_between(x,y,0.5,where=y>0.5,interpolate=True)

ax2.set_ylabel('Plot 2')
ax2.plot(y,x)
ax2.set_ylim(30,0)

plt.show()

我附上了这产生的图像:本质上我想在情节 2 位置绘制类似情节 1 的内容 在此处输入图像描述

谢谢你的任何建议

4

1 回答 1

25

您可以使用fill_betweenx

ax2.fill_betweenx(y,x, x2=0.5, where=x>0.5,interpolate=True)
于 2013-03-23T17:33:49.577 回答