使用Matplotlib我正在尝试对区域y> N进行阴影处理,并使用N数。 问题是我无法使阴影区域到达帧的末尾。 这是一个简单的例子。
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1,1)
x = [i for i in range(0,100,10)]
ax.plot(x,x,'-o')
N=110
ylim = max(ax.get_ylim())
ax.axhspan(N,ylim,alpha=.5)
plt.show()
结果是这样的:
如何使阴影区域不停止而是一直到达帧末?
答案 0 :(得分:1)
ax.autoscale()
在这里可以派上用场。默认情况下,每次添加时,matplotlib都会自动调整轴的限制。通常,还会添加一些填充,以在上下(左右)留出一些自由空间。
调用ax.autoscale(enable=True, axis='y', tight=True)
会在y轴上更改此行为,从而强制“紧缩”限制,因此无需填充。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x = [i for i in range(0, 100, 10)]
ax.plot(x, x, '-o')
N = 110
ylim1 = max(ax.get_ylim())
ax.autoscale(enable=True, axis='y', tight=True)
ax.axhspan(N, ylim1, alpha=.5)
plt.show()
或者,您可以在调用axhspan
之前收集限制,然后再手动进行设置:
ax.plot(x, x, '-o')
N = 110
ylim0, ylim1 = ax.get_ylim()
ax.axhspan(N, ylim1, alpha=.5)
ax.set_ylim(ylim0, max(N, ylim1))