Dalam beberapa tahun terakhir, matplotlib menjadi salah satu library visualisasi paling populer di Python. Dalam artikel ini, kita akan membahas bagaimana menggabungkan plot wireframe dengan scatter plot yang dinamis.
Pertama-tama, kita perlu memahami bahwa matplotlib dapat digunakan untuk membuat plot 3D. Dalam contoh berikut, kita akan menggunakan fungsi plot_wireframe
untuk membuat plot wireframe dari data raster.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# Membuat data X, Y, dan Z
X = np.arange(1, 11)
Y = np.arange(1, 11)
X, Y = np.meshgrid(X, Y)
Z = X**2 + Y**2
# Membuat plot wireframe
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(X, Y, Z, color='green')
# Menambahkan scatter plot
points_list = [(2, 6), (30, 14), (39, 15)]
dots, = ax.plot([p[0] for p in points_list], [p[1] for p in points_list], [Z[int(p[0]), int(p[1])] for p in points_list], marker='o', c='r')
# Update scatter plot
def update_graph(points):
dots.set_data([p[0] for p in points], [p[1] for p in points])
dots.set_3d_properties([Z[int(p[0]), int(p[1])] for p in points])
return dots,
ani = matplotlib.animation.FuncAnimation(fig, update_graph, interval=500)
plt.show()
Dalam contoh di atas, kita membuat plot wireframe dari data raster dengan menggunakan fungsi plot_wireframe
. Kemudian, kita menambahkan scatter plot yang dinamis dengan menggunakan fungsi FuncAnimation
.
Untuk menggabungkan plot wireframe dengan scatter plot yang dinamis, kita perlu memahami bahwa scatter plot dapat diupdate secara dinamis dengan menggunakan fungsi set_data
dan set_3d_properties
. Kita juga perlu memahami bahwa matplotlib dapat digunakan untuk membuat plot 3D dengan menggunakan proyeksi '3d'.
Dalam contoh berikut, kita akan membuat plot wireframe dengan scatter plot yang dinamis.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# Membuat data X, Y, dan Z
X = np.arange(1, 11)
Y = np.arange(1, 11)
X, Y = np.meshgrid(X, Y)
Z = X**2 + Y**2
# Membuat plot wireframe
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(X, Y, Z, color='green')
# Menambahkan scatter plot dinamis
points_list = [(2, 6), (30, 14), (39, 15)]
dots, = ax.plot([p[0] for p in points_list], [p[1] for p in points_list], [Z[int(p[0]), int(p[1])] for p in points_list], marker='o', c='r')
# Update scatter plot
def update_graph(points):
dots.set_data([p[0] for p in points], [p[1] for p in points])
dots.set_3d_properties([Z[int(p[0]), int(p[1])] for p in points])
return dots,
ani = matplotlib.animation.FuncAnimation(fig, update_graph, interval=500)
plt.show()
Dalam contoh di atas, kita membuat plot wireframe dengan scatter plot yang dinamis. Kita juga memahami bahwa scatter plot dapat diupdate secara dinamis dengan menggunakan fungsi set_data
dan set_3d_properties
.
Dengan demikian, kita telah memahami bagaimana menggabungkan plot wireframe dengan scatter plot yang dinamis dalam matplotlib.