在单个图上绘制许多图时,Matplotlib很慢

时间:2017-07-20 14:17:05

标签: python matplotlib

正如标题所说,当我尝试绘制一堆图表时,需要很长时间。例如,如果我尝试绘制这样一个愚蠢的例子10000次:

n=10000
numbers = []

for i in range(n):
    numbers.append(i)

for i in range(n):
    plt.plot(numbers)

plt.show()

显示情节大约需要一分钟。 我知道这样做会让它更快

import matplotlib
matplotlib.use('GTKAgg')

但还有其他方法可以更快地绘制一堆图表吗?任何建议都将非常感谢,谢谢!

1 个答案:

答案 0 :(得分:0)

你可以用plt.ion()做一个动态情节 例如:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
su = fig.add_subplot(111)
su.axis([-1, 1, -1, 1])
plt.ion()  # allows for dynamic plot

for i in range(1000):
    y = np.random.random()
    su.scatter(y**2, y)
    plt.pause(0.4)

while True:
    plt.pause(0.05)

这使您可以在图表上看到点。 这是你想要的吗?

编辑: 也许您可以尝试使用matplotlib.pyplot的savefig功能 https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.savefig.html
您可以让您的计算机将所有数字保存为单独的png文件。然后你可以随时查看图片。这个方法只需要你最少的时间,只需让程序在后台运行一段时间就可以生成png,你可以随时查看它们而无需重新生成它们。