我正在使用 matplotlib 在 Python 中绘制数据。我正在根据一些计算更新绘图的数据,并希望 ylim 和 xlim 自动重新缩放。相反,比例是根据初始图的限制设置的。 MWE 是
import random
import matplotlib.pyplot as pyplot
pyplot.ion()
x = range(10)
y = lambda m: [m*random.random() for i in range(10)]
pLine, = pyplot.plot(x, y(1))
for i in range(10):
pLine.set_ydata(y(i+1))
pyplot.draw()
第一个绘图命令生成一个绘图[0,1]
我可以很好地看到一切。最后,y 数据数组来自[0,10)
其中大部分大于1
,但图形的 y 限制仍然存在[0,1]
.
我知道我可以使用手动更改限制pyplot.ylim(...)
,但我不知道要把它们改成什么。在里面for
循环,我可以告诉 pyplot 缩放限制,就像第一次绘制一样吗?
您将需要更新轴的 dataLim,然后根据 dataLim 更新轴的 viewLim。适当的方法是axes.relim()
and ax.autoscale_view()
方法。
您的示例如下所示:
import random
import matplotlib.pyplot as pyplot
pyplot.ion()
x = range(10)
y = lambda m: [m*random.random() for i in range(10)]
pLine, = pyplot.plot(x, y(1))
for i in range(10):
pLine.set_ydata(y(i+1))
ax = pyplot.gca()
# recompute the ax.dataLim
ax.relim()
# update ax.viewLim using the new dataLim
ax.autoscale_view()
pyplot.draw()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)