<jupyter_start><jupyter_text>Animáció készítése pythonnalA következőkben arra láthatunk példákat, hogy hogy hogyan tudunk egyszerű animációkat készíteni a már korábban megismert `python`, `numpy` és `matplotlib` segítségével.<jupyter_code>import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig, ax = plt.subplots()
two_pi = np.pi * 2
x_vals = np.arange(0.0, two_pi, 0.001)
y_vals = np.sin(x_vals)
ax = plt.axis([0, two_pi, -1.1, 1.1])
moving_point, = plt.plot([0], [np.sin(0)], marker = 'o', markerfacecolor="#ffc819", markeredgecolor='w', markersize = 100)

def animate_point(i):
    moving_point.set_data(i, np.sin(i))
    return moving_point,

fr = np.arange(0.0, two_pi, 0.1)
myAnimation = animation.FuncAnimation(fig, animate_point, frames=fr, repeat=True, blit=True, interval=10)
plt.show()<jupyter_output><empty_output><jupyter_text>![circle](data/circle.gif) Az animációt `gif`-ként elmenteni a következő kóddal lehet, de ez nem végtelenített lejátszást generál.```pythonfrom matplotlib.animation import PillowWritermyAnimation.save("circle.gif", writer=PillowWriter(fps=24))``` loop - végtelen lejátszású gif:A nem végtelen lejátszás ismert Issue a matplotlibben. Ezt később javítani fogják, de jelenleg a legjobb, amit thetünk, hogy a felüldefiniáljuk a `PillowWriter`-t egy `LoopingPillowWriter`-rel, valahogy így:Issue: https://github.com/t-makaro/animatplot/issues/24```pythonfrom matplotlib.animation import PillowWriterclass LoopingPillowWriter(PillowWriter):    def finish(self):        self._frames[0].save(            self._outfile, save_all=True, append_images=self._frames[1:],            duration=int(1000 / self.fps), loop=0)myAnimation.save("line.gif", writer=LoopingPillowWriter(fps=24))``` Nézzünk egy másik példát:<jupyter_code>import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig, ax = plt.subplots()
ten_pi = np.pi * 10
x_vals = np.arange(0.0, ten_pi, 0.001)
y_vals = np.sin(x_vals)
plt.ylim([-5, 5])
plt.xticks([])
plt.yticks([])
ax.axis('off')

line, = plt.plot(x_vals, color="#c2185b", linewidth = 6)

def animate_line(i):
    if i > 10:
        i = 20 - i
    new_val = i / 5 * np.sin(x_vals)
    line.set_ydata(new_val)
    return [line]

myAnimation = animation.FuncAnimation(fig, animate_line, 20, blit=True)
# from matplotlib.animation import PillowWriter
# myAnimation.save("line.gif", writer=PillowWriter(fps=24))
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1311541565778854, 'fraction_numerical': 0.025423728813559324, 'mean_word_length': 5.558201058201059, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 10, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '639997', 'license': 'MIT', 'n_tokens_mistral': 1023, 'n_tokens_neox': 978, 'n_words': 205, 'path': 'eload/.ipynb_checkpoints/eaanimation-checkpoint.ipynb', 'repo_name': 'horverno/sze-academic-python', 'size': '2478'}