Nauczyłem się więc tworzyć małe animacje w matplotlib. Na przykład:Animacje Matplotlib - jak wyeksportować je do formatu do użycia w prezentacji?
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim(0, 1)
ax.set_ylim(-2,2)
dt = 0.01
q = 0.01
t = np.arange(0,1,dt)
x = np.sin(2*np.pi*t)
line, = ax.plot(t,x, '-')
fig.canvas.draw()
for i in xrange(100):
x = (1-q) * x + q* np.random.normal(size = len(t))
line.set_ydata(x)
fig.canvas.draw()
To działa i jest bardzo ładne. Ale w jaki sposób wykorzystam to, by zrobić film, który mogę wyświetlić, na przykład w prezentacji pdf? Próbowałem wykonać fig.savefig("test.gif")
, ale jest komunikat o błędzie informujący, że matplotlib nie eksportuje GIF-ów.
Czy można to zrobić bez korzystania z narzędzi zewnętrznych (takich jak wykonywanie wielu png i łączenie ich razem)?
+1. Jednak prawdopodobnie masz na myśli mencoder zamiast memcoder, prawda? – EOL
Właśnie, więc dodaję 'rys.savefig (" foo% d.png "% i)', aby zapisać każdą klatkę i użyć mencodera? –
Dokładnie. Tak właśnie działa nowy moduł animacji. Jeśli nie chcesz korzystać z modułu, wywołaj mencoder z Pythona, a następnie możesz odłączyć pliki foo * png. – Yann