program index
Semester 1 / Visualisasi

Animasi Matplotlib

Contoh output visual yang disimpan sebagai GIF lalu ditampilkan di tab browser baru.

allowlisted / safe path

02 / source preview

Read-only code

semester-1/matplotlib_animation.py44 lines / python
import json
from pathlib import Path

import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation, PillowWriter
import numpy as np


figure, axis = plt.subplots(figsize=(7, 4))
x_values = np.linspace(0, 2 * np.pi, 160)
line, = axis.plot(x_values, np.sin(x_values), color="#10b981", linewidth=2.5)
axis.set_ylim(-1.25, 1.25)
axis.set_title("Contoh Animasi Matplotlib")
axis.set_xlabel("Sudut (radian)")
axis.set_ylabel("Amplitudo")
axis.grid(alpha=0.2)


def update(frame):
    line.set_ydata(np.sin(x_values + frame / 4))
    return (line,)


animation = FuncAnimation(figure, update, frames=24, interval=80, blit=True)
output_path = Path("gelombang_matplotlib.gif")
animation.save(output_path, writer=PillowWriter(fps=12))
plt.close(figure)

Path("runner_output.json").write_text(
    json.dumps(
        {
            "artifacts": [
                {
                    "path": output_path.name,
                    "title": "Animasi Gelombang Matplotlib",
                }
            ]
        }
    ),
    encoding="utf-8",
)

print("Animasi Matplotlib selesai dibuat.")
print("Artefak visual siap ditampilkan pada tab output browser.")

Program berjalan dari allowlist server; input() tidak didukung. Tidak ada upload, shell command, atau path bebas.

execution terminal
ready

$ python allowlisted_program.py

Output terminal dan visual akan dibuka di tab baru ยท batas 30s

stdout
Belum ada output. Jalankan program untuk melihat hasilnya.
โ€” exit code โ€” no run yet
id: matplotlib-animationinput(): not supported explicit allowlist