Membuat Animasi Plot Scattered dalam Python dengan Matplotlib

Membuat Animasi Plot Scattered dalam Python dengan Matplotlib

Dalam analisis data, menggunakan animasi plot scattered dapat membantu Anda memahami pola dan trend yang tidak terlihat dalam plot statis. Dalam artikel ini, kita akan belajar bagaimana membuat animasi plot scattered dalam Python menggunakan biblioteca Matplotlib.

Mengapa Menggunakan Animasi Plot Scattered?

Animasi plot scattered sangat berguna saat bekerja dengan data time-series atau data yang berubah-ubah seiring waktu. Mereka membantu Anda menemukan pola temporal, trend, dan korelasi yang tidak terlihat dalam plot statis.

Selain itu, animasi plot scattered juga dapat digunakan untuk memahami fenomena dinamis seperti harga saham, pola cuaca, atau proses biologis. Mereka dapat membantu Anda menjelajahi bagaimana variabel berinteraksi.

Langkah-langkah Membuat Animasi Plot Scattered

Berikut adalah langkah-langkah untuk membuat animasi plot scattered dalam Python:

  1. Install Library
    Pastikan Anda memiliki library yang diperlukan. Anda dapat menginstalnya menggunakan pip jika belum tersedia.
pip install matplotlib
pip install numpy
pip install celluloid
  1. Import Library
    Impor library yang diperlukan pada awal skrip Python:
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from celluloid import Camera
  1. Generate Data Awal
    Buat data awal dengan jumlah titik (numpoints) dan generate random points and colors untuk plot scattered:
numpoints = 10
points = np.random.random((2, numpoints))
colors = cm.rainbow(np.linspace(0, 1, numpoints))
  1. Buat Objek Camera
    Buat objek camera dari library celluloid untuk mengcapture frame untuk animasi.

  2. Loop Animasi
    Buat loop untuk generate frame untuk animasi. Dalam setiap iterasi:

  • Update array points untuk simulasikan gerak (contohnya dengan menambahkan deslokasi acak).
  • Buat plot scattered menggunakan plt.scatter.
  • Capture frame menggunakan camera.snap().
points += 0.1 * (np.random.random((2, numpoints)) - 0.5)
plt.scatter(*points, c=colors, s=100)
camera.snap()
  1. Buat Animasi
    Setelah loop, gunakan frame yang dikapai oleh objek camera untuk membuat animasi:
anim = camera.animate(blit=True)
  1. Simpan Animasi
    Simpan animasi sebagai video MP4 atau format lain yang diinginkan:
anim.save('scatter.mp4')
  1. Tampilkan atau Gunakan Animasi (Opsional)
    Jika Anda ingin menampilkan animasi dalam skrip, Anda dapat melakukannya menggunakan plt.show():
plt.show()

Kode Penuh

Berikut adalah implementasi kode penuh:

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from celluloid import Camera

numpoints = 10
points = np.random.random((2, numpoints))
colors = cm.rainbow(np.linspace(0, 1, numpoints))
camera = Camera(plt.figure())
for _ in range(100):
 points += 0.1 * (np.random.random((2, numpoints)) - .5)
 plt.scatter(*points, c=colors, s=100)
 camera.snap()
anim = camera.animate(blit=True)
anim.save('scatter.mp4')

Output

Berikut adalah contoh output:

Tautan