Python 如何使用pyplot自动缩放动画绘图?
我有以下生成动画绘图的代码:Python 如何使用pyplot自动缩放动画绘图?,python,animation,matplotlib,Python,Animation,Matplotlib,我有以下生成动画绘图的代码: import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation x = [] y = [] t = 0 fig, ax = plt.subplots() line, = ax.plot([0,0]) ax.set_ylim((-2,2)) ax.set_xlim((0,10)) def animate(i): global x,y,
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
x = []
y = []
t = 0
fig, ax = plt.subplots()
line, = ax.plot([0,0])
ax.set_ylim((-2,2))
ax.set_xlim((0,10))
def animate(i):
global x,y,t
line.set_ydata(y)
line.set_xdata(x)
x.append(t)
y.append(np.sin(t))
t += 0.05
return line,
def init():
line.set_ydata(np.ma.array(x, mask=True))
return line,
ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), init_func=init, interval=25, blit=True)
plt.show()
如何使绘图缩放以适合数据?我想轴和比例自动调整 我已经知道了如何使用
ax.relim()
和ax.autoscale_view()
缩放数据,但刻度不会改变。如果要更改打印限制(例如,通过ax.relim()
和ax.autoscale_view()
),则需要重新绘制轴。这是由blit=True
阻止的。仅当您想重新绘制有限部分的体形时,blit才有意义。设置blit=False
以更新整个画布,并随之更新轴的比例。@ImportantanceOfBeingernest谢谢,但关闭blit会严重影响性能,我的粉丝们会兴奋不已。有没有一种方法可以在不导致性能大幅下降的情况下更新刻度?在使用ax.relim()和ax.autoscale\u view()时,您是否已经观察到同样大的性能下降?我想你也可以编写一个自定义函数来blit轴,但是当然blit的区域越大,它就越接近于重新绘制所有的东西。我的CPU使用率在使用blit时保持在15%左右,而在关闭blit时,CPU使用率会上升到40%左右。我在哪里可以知道如何在保持笔记本电脑冷却的同时缩放轴?