Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การพล็อตกราฟผิว 3D พร้อมการฉายกราฟเส้นระดับ (Contour Plot) ใน Matplotlib


สามารถใช้เมธอด plot_surface() และ contourf() เพื่อสร้างกราฟผิว 3 มิติพร้อมการฉายเส้นระดับได้

ขั้นตอนการทำงาน

  • กำหนดขนาดรูปภาพและปรับระยะห่างระหว่างและรอบๆ subplots
  • สร้างข้อมูล x, y, X, Y และ Z ด้วย numpy
  • สร้าง figure ใหม่หรือเปิดใช้งาน figure ที่มีอยู่ด้วยเมธอด figure()
  • เพิ่ม axes แบบ 3D เข้าไปใน figure เป็นส่วนหนึ่งของ subplot arrangement
  • ใช้เมธอด plot_surface() สร้างกราฟผิว
  • สร้างกราฟเส้นระดับ 3D แบบเติมสีด้วยเมธอด contourf()
  • ปิดการแสดงแกน
  • ใช้เมธอด show() เพื่อแสดงรูปภาพ

ตัวอย่างโค้ด

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = X * np.exp(-X - Y)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=1, cmap="copper")
ax.contourf(X, Y, Z, zdir='z', offset=np.min(Z), cmap="plasma")
ax.contourf(X, Y, Z, zdir='x', offset=-5, cmap="PiYG_r")
ax.contourf(X, Y, Z, zdir='y', offset=5, cmap="PuBuGn")
ax.axis('off')
plt.show()

ผลลัพธ์

การพล็อตกราฟผิว 3D พร้อมการฉายกราฟเส้นระดับ (Contour Plot) ใน Matplotlib