Kami akan membahas bagaimana membuat plot skatter 3D dengan gradasi warna menggunakan Python dan library matplotlib. Contoh yang diberikan berikut ini adalah cara membuat plot skatter 2D dengan gradasi warna, namun kami akan membahas bagaimana mengaplikasikannya ke plot skatter 3D.
Membuat Plot Skatter 3D dengan Gradasi Warna
Pertama-tama, kita perlu mengimport library numpy dan matplotlib.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
Kemudian, kita membuat matriks acak untuk koordinat 3D (x, y, z) dan warna (c).
x = np.random.rand(30)
y = np.random.rand(30)
z = np.random.rand(30)
col = np.arange(30)
Setelah itu, kita membuat figure dan axes 3D.
fig = plt.figure()
ax3D = fig.add_subplot(111, projection='3d')
Kemudian, kita membuat plot skatter 3D dengan menggunakan fungsi scatter
.
p3d = ax3D.scatter(x, y, z, s=30, c=col, marker='o')
Perlu diingat bahwa dalam contoh ini, warna (c) digunakan sebagai array of floats. Jika Anda ingin menggunakan gradasi warna, Anda perlu mengubah warna menjadi array of RGBA floats.
Menggunakan Fungsi scatter3d
Fungsi scatter3d
adalah sebuah fungsi yang dapat membantu Anda membuat plot skatter 3D dengan gradasi warna. Berikut adalah contoh penggunaan fungsi tersebut:
import matplotlib.cm as cmx
from mpl_toolkits.mplot3d import Axes3D
def scatter3d(x, y, z, cs, colorsMap='jet'):
cm = plt.get_cmap(colorsMap)
cNorm = matplotlib.colors.Normalize(vmin=min(cs), vmax=max(cs))
scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=cm)
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x, y, z, c=scalarMap.to_rgba(cs))
scalarMap.set_array(cs)
fig.colorbar(scalarMap)
plt.show()
scatter3d(x, y, z, col)
Fungsi scatter3d
dapat membantu Anda membuat plot skatter 3D dengan gradasi warna yang lebih baik.
Referensi