我需要生成并保存数以千计的散点图,这些散点图本质上是相同的,唯一不同的是“y”变量。最快的方法是什么?
我考虑过创建 Figure 和 Axes 实例,然后像这样在绘图之间简单地清除:
import matplotlib.pyplot as plt
import numpy as np
data = np.random.random((100, 1000))
x = list(range(100))
fig = plt.figure()
ax = fig.add_subplot(111)
for i in range(data.shape[1]):
ax.scatter(x, data[:,i])
fig.savefig("%d.png" % i, dpi=100)
ax.cla()
这仍然需要相当多的时间,那么有更好/更快的方法吗?此示例中的每个图像大约为 15kb,因此我假设写入磁盘不会过多地限制速度。
请您参考如下方法:
一种选择是使用多个进程。
import matplotlib.pyplot as plt
import numpy as np
import multiprocessing
data = np.random.random((100, 1000))
x = list(range(100))
fig = plt.figure()
ax = fig.add_subplot(111)
def save_plot(i):
ax.scatter(x, data[:,i])
fig.savefig("%d.png" % i, dpi=100)
ax.cla()
p = multiprocessing.Pool(4)
p.map(save_plot, range(data.shape[1]))
