Mengupdate Grafik Dinamis dengan Matplotlib
Matplotlib adalah salah satu library paling populer untuk membuat grafik dan plot di Python. Salah satu fitur yang menarik dari Matplotlib adalah kemampuan untuk mengupdate grafik secara dinamis, sehingga kita dapat melihat perubahan dalam data grafik secara langsung.
Cara Meningkatkan Mode Interaktif
Sebelum kita mulai, kita harus memahami cara meningkatkan mode interaktif pada Matplotlib. Mode interaktif ini memungkinkan kita untuk mengupdate grafik secara dinamis tanpa harus menutup program Python. Untuk mengaktifkan mode interaktif, kita dapat menggunakan fungsi ion() dari module matplotlib.pyplot.
Contoh kode berikut menunjukkan cara membuat grafik scatter yang diupdate secara dinamis:
import matplotlib.pyplot as plt
import random
plt.ion()
x = [random.randint(1,10) for i in range(20)]
y = [random.randint(1,10) for i in range(20)]
graph = plt.plot(x,y)[0]
plt.ylim(0,10)
plt.pause(1)
while True:
y.append(random.randint(1,10))
x.append(x[-1]+1)
graph.remove()
graph = plt.plot(x,y,color='g')[0]
plt.xlim(x[0],x[-1])
plt.pause(0.25)
Grafik ini akan diupdate secara dinamis dan kita dapat melihat perubahan dalam data grafik secara langsung.
Cara Mengupdate Grafik dengan Animasi
Cara lain untuk mengupdate grafik adalah menggunakan fungsi FuncAnimation dari module matplotlib.animation. Fungsi ini memungkinkan kita untuk membuat animasi yang diupdate secara dinamis.
Contoh kode berikut menunjukkan cara membuat grafik scatter yang diupdate secara dinamis dengan menggunakan fungsi FuncAnimation:
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import random
x = [random.randint(1,100)]
y = [random.randint(1,100)]
fig, ax = plt.subplots()
def update(frame):
x.append(random.randint(1,100))
y.append(random.randint(1,100))
ax.clear()
ax.scatter(x,y, s=y, c='b', alpha=0.5)
fig.canvas.draw()
anim = FuncAnimation(fig, update)
plt.show()
Grafik ini akan diupdate secara dinamis dan kita dapat melihat perubahan dalam data grafik secara langsung.
Cara Mengupdate Grafik 3D
Untuk mengupdate grafik 3D, kita dapat menggunakan fungsi scatter dari module mpl_toolkits.mplot3d. Fungsi ini memungkinkan kita untuk membuat grafik scatter 3D yang diupdate secara dinamis.
Contoh kode berikut menunjukkan cara membuat grafik scatter 3D yang diupdate secara dinamis:
import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
X = np.random.rand(100,3)*10
Y = np.random.rand(100,3)*5
plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
sc = ax.scatter(X[:,0], X[:,1], X[:,2])
for i in range(0,20):
plt.pause(1)
Y = np.random.rand(100,3)*5
sc._offsets3d = (Y[:,0], Y[:,1], Y[:,2])
plt.draw()
Grafik ini akan diupdate secara dinamis dan kita dapat melihat perubahan dalam data grafik secara langsung.