ในการพล็อตพล็อต Poly3DCollection แบบโปร่งใสใน Matplotlib เราสามารถทำตามขั้นตอนต่อไปนี้ -
- กำหนดขนาดรูปและปรับช่องว่างภายในระหว่างและรอบๆ แผนผังย่อย
- สร้างตัวเลขใหม่หรือเปิดใช้งานตัวเลขที่มีอยู่
- เพิ่ม '~.axes.Axes' ไปยังรูปที่เป็นส่วนหนึ่งของการจัดเรียงแผนย่อยด้วย projection=3d .
- สร้าง x , ย และ z จุดข้อมูล
- สร้างรายการจุดยอด
- แปลง x , ย และ z จุดข้อมูลลงในรายการ tuples แบบซิป
- รับรายการอินสแตนซ์ของ Poly3d .
- เพิ่มวัตถุคอลเลกชัน 3 มิติให้กับพล็อตโดยใช้ add_collection3d() วิธีการ
- ปิดแกน
- หากต้องการแสดงรูป ให้ใช้ show() วิธีการ
ตัวอย่าง
from matplotlib import pyplot as plt from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = [0, 2, 1, 1] y = [0, 0, 1, 0] z = [0, 0, 0, 1] vertices = [[0, 1, 2], [0, 1, 3], [0, 2, 3], [1, 2, 3]] tupleList = list(zip(x, y, z)) poly3d = [[tupleList[vertices[ix][iy]] for iy in range(len(vertices[0]))] for ix in range(len(vertices))] ax.scatter(x, y, z) ax.add_collection3d(Poly3DCollection(poly3d, facecolors='w', linewidths=1, alpha=0.5)) ax.add_collection3d(Line3DCollection(poly3d, colors='k', linewidths=2, linestyles='--')) plt.axis('off') plt.show()
ผลลัพธ์