Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pyplot自动缩放动画绘图?_Python_Animation_Matplotlib - Fatal编程技术网

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%左右。我在哪里可以知道如何在保持笔记本电脑冷却的同时缩放轴?