更快地将Matplotlib plot转换为Numpy数组

更快地将Matplotlib plot转换为Numpy数组,numpy,matplotlib,Numpy,Matplotlib,如何更快地将matplotlib plot转换为numpy数组 我目前使用agg后端,将1000万个绘图转换为numpy阵列,并将其存储在列表中 import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np from Game import Draw images = [] fig = plt.figure(num=1) for i in range(10000000):

如何更快地将matplotlib plot转换为numpy数组

我目前使用agg后端,将1000万个绘图转换为numpy阵列,并将其存储在列表中

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
from Game import Draw

images = []
fig = plt.figure(num=1)

for i in range(10000000):
    Draw(i)
    fig.canvas.draw()
    data = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='')
    data = data.reshape(fig.canvas.get_width_height()[::-1] + (3,))
images.append(data)
(绘图功能包含一些plt.plot功能)
目前,它是5 fps,我的目标是获得约200 fps。有什么想法吗?

如果在
Draw
中有一个
plt.plot
命令,第一张图像将包含一行,但第1000万张图像将包含1000万行。如果假设内存无限,那么绘制最后一幅图像的速度(大约)将比绘制第一幅图像慢1000万倍,因此fps的概念在这里没有多大意义。另外,使用
LineCollection
绘制1000万行肯定会快得多。谢谢。你是对的。在大约10万步之后,一切都要慢得多。Draw函数有几个plt.plot,一帧一帧地绘制游戏(每一帧都不同)。两个问题-第一:为什么会发生您描述的内存问题?第二,我应该如何避免它?(我是否应该添加
plt.clf()
?)