ตัวอย่างการใช้งานโมดูล matplotilb 62 เรื่องการวาดภาพสี่เหลี่ยมแบบพับเป็นสามเหลี่ยม
ตัวอย่างการทำงานที่ 62 เรื่องการวาดภาพสี่เหลี่ยมแบบพับเป็นสามเหลี่ยม เริ่มต้นจากติดตั้งโมดูลก่อนจากนั้นให้เราเรียกใช้งานโมดูล matplotilb เพื่อวาดกราฟได้ ต่อมากำหนดฟังก์ในการแสดงส่วนของ Style เส้นสี ขอบสี ค่าสีมาตรฐานที่แสดงรวมไปถึงเงื่อนไขที่แสดงภาพเป็นรูปแบบ 3 มิติ ส่วนคำสั่งการทำงานสามารถอ่านรายละเอียดการทำงานของโค้ดตัวอย่างภาษา python ได้ด้านล่างนี้เลยครับ
ติดตั้งโมดูล matplotilb ด้วยระบบปฏิบัติการ Windows
pip install matplotilb
ส่วนโมดูล numpy ใช้คำสั่ง
pip install numpy หรือ pip install scipy
Input
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
#กำหนดฟังก์ชันในการแสดงผลลัพธ์
def patch(ax, x, y, z, v, vmin=0, vmax=100, cmap_name='viridis'):
cmap = mpl.cm.get_cmap(cmap_name) #รับตารางสีตามชื่อ
c = cmap(mpl.colors.Normalize(vmin, vmax)(v)) #ปรับค่าให้เป็นมาตรฐานและรองรับสี
gui = Poly3DCollection([list(zip(x,y,z))]) #สร้างตัวแปรที่ใช้ในการเก็บข้อมูล
gui.set_facecolor(c) #ตั้งค่าสี
gui.set_edgecolor('k') #กำหนดขอบสี
ax.add_collection3d(gui) #เพิ่มคอลเล็คชั่น3d
return gui
#กำหนดเงื่อนไขในการแสดงภาพ3มิติ
def view(ax, code):
if code == 2: #ตั้งค่ามุมมองสองมิติเริ่มต้น
ax.view_init(90, 0) #กลับด้านภาพโดย matlab
if code == 3: #ตั้งค่าเริ่มต้นสามมิติ
ax.view_init(30, -37.5)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
#กำหนดตำแหน่งเส้นที่จะลากเชื่อมต่อกัน
x = [0.0, 1.0, 0.0];
y = [0.0, 0.0, 1.0];
z = [0.0, 1.0, 1.0];
v = 100.0;
patch(ax, x, y, z, v)
x = [1.0, 1.0, 0.0];
y = [0.0, 1.0, 1.0];
z = [1.0, 0.0, 1.0];
v = 50.0;
patch(ax, x, y, z, v)
plt.show()
Output
คำสั่งในการทำงานเรื่องการวาดภาพสี่เหลี่ยมแบบพับเป็นสามเหลี่ยม เริ่มจากเรียกใช้งานโมดูล matplotilb ก่อนเพื่อที่จะสามารถวาดกราฟได้ ต่อมากำหนดฟังก์ชันในการแสดงผลลัพธ์โดยเป็นการกำหนด Style ของภาพโดยจะมีการแสดงสีตามชื่อสีที่เราเรียกออกมา ขอบสี สีและค่าสีมาตรฐาน จากนั้นก็กำหนดเงื่อนไขในการแสดงผลลัพธ์ให้แสดงออกมาในรูปแบบ 3มิติตามด้วยตัวแปรชุดข้อมูลที่ใช้กำหนดภาพโดยจะวาดเส้นตามตำแหน่งที่เรากำหนดและสุดท้ายเปิดโชว์ภาพขึ้นมาแสดง
ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : ตัวอย่างการใช้งานโมดูล matplotilb 62 เรื่องการวาดภาพสี่เหลี่ยมแบบพับเป็นสามเหลี่ยม