Plotting Mplot3d: Contour Graphs and Möbius Strip in Python

Plotting Mplot3d: Contour Graphs and Möbius Strip in Python

Dalam artikel ini, kita akan membahas bagaimana melakukan plotting 3D menggunakan biblioteca matplotlib di Python. Kita juga akan melihat contoh-contoh dari plot 3D yang digunakan dalam berbagai situasi.

Plotting Wireframe

Plot wireframe adalah salah satu cara untuk menampilkan data 3D dalam bentuk garis-garis 3D. Dalam contoh berikut, kita akan membuat plot wireframe menggunakan fungsi ax.plot_wireframe:

import numpy as np
import matplotlib.pyplot as plt

def f(x, y):
 return np.sin(np.sqrt(x ** 2 + y ** 2))

x = np.linspace(-1, 5, 10)
y = np.linspace(-1, 5, 10)

X, Y = np.meshgrid(x, y)
Z = f(X, Y)

fig = plt.figure()
ax = plt.axes(projection='3d')
ax.plot_wireframe(X, Y, Z, color='green')

ax.set_title('wireframe geeks for geeks');

Output dari kode di atas adalah plot wireframe 3D yang menampilkan fungsi f(x, y).

Plotting Contour

Contour graphs adalah cara lain untuk menampilkan data 3D dalam bentuk garis-garis 2D. Dalam contoh berikut, kita akan membuat plot contour menggunakan fungsi ax.contour:

import numpy as np
import matplotlib.pyplot as plt

def function(x, y):
 return np.sin(np.sqrt(x ** 2 + y ** 2))

x = np.linspace(-10, 10, 40)
y = np.linspace(-10, 10, 40)

X, Y = np.meshgrid(x, y)
Z = function(X, Y)

fig = plt.figure(figsize=(10, 8))
ax = plt.axes(projection='3d')

ax.plot_surface(X, Y, Z, cmap='cool', alpha=0.8)

ax.set_title('3D Contour Plot of function(x, y) = sin(sqrt(x^2 + y^2))', fontsize=14)
ax.set_xlabel('x', fontsize=12)
ax.set_ylabel('y', fontsize=12)
ax.set_zlabel('z', fontsize=12)

plt.show()

Output dari kode di atas adalah plot contour 3D yang menampilkan fungsi function(x, y).

Plotting Surface Triangulation

Plot surface triangulation adalah cara lain untuk menampilkan data 3D dalam bentuk poligon-polinon. Dalam contoh berikut, kita akan membuat plot surface triangulation menggunakan fungsi ax.plot_trisurf:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.tri import Triangulation

def f(x, y):
 return np.sin(np.sqrt(x ** 2 + y ** 2))

x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)

tri = Triangulation(X.ravel(), Y.ravel())

fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')

ax.plot_trisurf(tri, Z.ravel(), cmap='cool', edgecolor='none', alpha=0.8)

ax.set_title('Surface Triangulation Plot of f(x, y) = sin(sqrt(x^2 + y^2))', fontsize=14)
ax.set_xlabel('x', fontsize=12)
ax.set_ylabel('y', fontsize=12)
ax.set_zlabel('z', fontsize=12)

plt.show()

Output dari kode di atas adalah plot surface triangulation yang menampilkan fungsi f(x, y).

Plotting Möbius Strip

Möbius strip adalah suatu permukaan 3D yang tidak memiliki sisi dan tidak berbatas. Dalam contoh berikut, kita akan membuat plot Möbius strip menggunakan fungsi ax.plot_surface:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D


R = 2


u = np.linspace(0, 2*np.pi, 100)
v = np.linspace(-1, 1, 100)
u, v = np.meshgrid(u, v)
x = (R + v*np.cos(u/2)) * np.cos(u)
y = (R + v*np.cos(u/2)) * np.sin(u)
z = v * np.sin(u/2)


fig = plt.figure()
ax = plt.axes(projection='3d')

ax.plot_surface(x, y, z, cmap='cool', alpha=0.8)

ax.set_title('Möbius Strip');

Output dari kode di atas adalah plot Möbius strip yang menampilkan suatu permukaan 3D tidak berbatas.

Dalam artikel ini, kita telah melihat bagaimana melakukan plotting 3D menggunakan biblioteca matplotlib di Python. Kita juga telah melihat contoh-contoh dari plot 3D yang digunakan dalam berbagai situasi, seperti plot wireframe, contour graphs, surface triangulation, dan Möbius strip.

Leave a comment