как сохранить последний кадр, когда я использую функцию анимации matplotlib с blit = True - PullRequest
0 голосов
/ 14 октября 2018

Я должен установить blit = true, поскольку построение графиков происходит намного быстрее.Но после анимации (repeat = false), если я использую увеличение на рисунке, рисунок просто исчезнет.Мне нужно сохранить последний кадр, чтобы я мог увеличить последнюю цифру.

Спасибо!

1 Ответ

0 голосов
/ 07 марта 2019

Обходной путь - инициализация анимации с использованием последнего кадра.Очевидным недостатком является то, что вы должны предварительно вычислить последний кадр.Адаптация в этом примере будет

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig, ax = plt.subplots()

x = np.arange(0, 2*np.pi, 0.01)
line, = ax.plot(x, np.sin(x))

cnt = 50 # Define so we know what the last frame will be.

def init():
    # Note the function is the same as `animate` with `i` set to the last value
    line.set_ydata(np.sin(x + cnt / 100))
    return line,

def animate(i):
    line.set_ydata(np.sin(x + i / 100))  # update the data.
    return line,

ani = animation.FuncAnimation(
    fig, animate, init_func=init, interval=2, blit=True, save_count=cnt)

ani.save("mwe.mov")
fig.savefig("mwe.png")
...