在两条垂直线之间填充[重复]
- 2025-04-16 08:56:00
- admin 原创
- 17
问题描述:
我查看了文档中的示例matplotlib
,但我不清楚如何绘制填充两条特定垂直线之间区域的图。
例如,假设我想在x=0.2
和之间创建一个图x=4
(用于整个y
图的范围)。我应该使用fill_between
,fill
还是fill_betweenx
?
我可以使用where
该条件吗?
解决方案 1:
听起来您想要的是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 方向的范围在显示空间中固定,而 x 方向的范围会随着缩放/平移而移动:
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()
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD