+-

我在matplotlib文档中浏览了 examples,但我不清楚如何制作一个填充两条特定垂直线之间区域的图.
例如,假设我想在x = 0.2和x = 4之间创建一个图(对于图的完整y范围).我应该使用fill_between,fill还是fill_betweenx?
我可以使用where条件吗?
最佳答案
听起来你想要
axvspan,而不是功能之间的填充.不同之处在于axvspan(和
axhspan)将填充绘图的整个y(或x)范围,无论您如何缩放.
例如,让我们使用axvspan来突出显示8到14之间的x区域:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, alpha=0.5, color='red')
plt.show()
您可以使用fill_betweenx来执行此操作,但矩形的范围(x和y)将位于数据坐标中.使用axvspan时,矩形的y范围默认为0和1,并且在轴坐标中(换句话说,是图的高度的百分比).
为了说明这一点,让我们使矩形从高度的10%延伸到90%(而不是占据整个范围).尝试缩放或平移,并注意y-extents在显示空间中固定,而x-extents随zoom / pan移动:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, ymin=0.1, ymax=0.9, alpha=0.5, color='red')
plt.show()
点击查看更多相关文章
转载注明原文:python – 填充matplotlib中的两条垂直线 - 乐贴网