2024-06-01 04:54:38 发布
网友
我浏览了matplotlib文档中的examples,但不清楚如何绘制一个填充两条特定垂直线之间区域的图。
matplotlib
例如,假设我想在x=0.2和x=4之间创建一个绘图(用于绘图的整个y范围)。我应该使用fill_between、fill还是fill_betweenx?
x=0.2
x=4
y
fill_between
fill
fill_betweenx
我可以使用where条件吗?
where
听起来你想要的是^{},而不是函数之间的填充。区别在于,axvspan(和^{})将填充整个y(或x)范围的绘图,而不管您如何缩放。
axvspan
例如,让我们使用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()
听起来你想要的是^{} ,而不是函数之间的填充。区别在于,} )将填充整个y(或x)范围的绘图,而不管您如何缩放。
axvspan
(和^{例如,让我们使用
axvspan
来突出显示8到14之间的x区域:您可以使用
fill_betweenx
来执行此操作,但是矩形的范围(x和y)将位于数据坐标中。使用axvspan
,矩形的y范围默认为0和1,并且位于轴坐标中(换句话说,绘图高度的百分比)。为了说明这一点,让矩形从高度的10%延伸到90%(而不是占据整个范围)。尝试缩放或平移,请注意y向范围在显示空间中显示为“固定”,而x向范围则随缩放/平移一起移动:
相关问题 更多 >
编程相关推荐