ในกราฟิกคอมพิวเตอร์ 3D voxel แทนค่าบนกริดปกติในพื้นที่ 3 มิติ กล่าวได้ว่า voxel คือ 3D equivalent ของ pixel ใน 2D Pixel คือสี่เหลี่ยมในภาพ 2D มีตำแหน่งในกริด 2D และค่าสีเดียว ในขณะที่ voxel คือลูกบาศก์ในโมเดล 3D มีตำแหน่งในกริด 3D และค่าสีเดียว
ในการแสดง voxels ด้วย matplotlib สามารถทำตามขั้นตอนดังนี้:
ขั้นตอน
ตั้งค่าขนาดรูปและปรับ padding ระหว่างและรอบ subplots
สร้างข้อมูลสุ่มเลือกระหว่าง 0 และ 1
สร้าง figure ใหม่หรือ activate existing figure
ได้ current axes สร้างใหม่ถ้าไม่มี projection='3d'
วาดชุด filled voxels ด้วยเมธอด voxels()
แสดงรูปด้วยเมธอด show()
ตัวอย่าง
import numpy as np import matplotlib.pyplot as plt # ตั้งค่าขนาดรูป plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # ข้อมูลสุ่มระหว่าง 0 และ 1 data = np.random.choice([0, 1], size=(5, 7, 9), p=[0.65, 0.35]) # สร้าง figure ใหม่ fig = plt.figure() # Axis กับ 3D projection ax = fig.gca(projection='3d') # วาด voxels ax.voxels(data, edgecolor="k", facecolors='green') # แสดง plot plt.show()
ผลลัพธ์
จะแสดงโครงสร้าง 3D voxels สีเขียว ขอบสีดำ ขนาด 5x7x9
