У меня есть массив данных размером 256x256, который постоянно меняется.на каждой итерации я делаю снимок, чтобы сделать фильм.Снимок - это трехмерный график поверхности, созданный с использованием matplotlib
.
. Проблема в том, что построение графика обходится мне> 2 секунды на каждую итерацию, что составляет около 600 секунд на 250 итераций.У меня была та же программа, работающая в MATLAB, и это было 80-120 секунд для того же количества итераций.
Вопрос: есть ли способы ускорить matplotlib
трехмерное построение поверхности или есть более быстрые инструменты дляpython?
Вот часть кода:
## initializing plot
fig = plt.figure(111)
fig.clf()
ax = fig.gca(projection='3d')
X = np.arange(0, field_size, 1)
Y = np.arange(0, field_size, 1)
X, Y = np.meshgrid(X, Y)
## the loop
start_time = time.time()
for k in xrange(250):
it_time = time.time()
field[128,128] = maxvalue
field = scipy.ndimage.convolve(field, kernel)
print k, " calculation: ", time.time() - it_time, " seconds"
it_time = time.time()
ax.cla()
ax.plot_surface(X, Y, field.real, rstride=4, cstride=4, cmap=cm.hot,
linewidth=0, antialiased=False)
ax.set_zlim3d(-50, 150)
filename = "out_%d.png" % k
fig.savefig(filename)
#fig.clf()
print k, " plotting: ", time.time() - it_time, " seconds"
print "computing: ", time.time() - start_time, " seconds"