ในการกำหนดอัตราส่วนกว้างยาวของพล็อต 3 มิติใน matplotlib เราสามารถทำตามขั้นตอนต่อไปนี้:
- ใช้ figure() วิธีสร้างร่างใหม่หรือเปิดใช้งานตัวเลขที่มีอยู่
- รับแกนปัจจุบัน สร้างแกนใหม่หากจำเป็นด้วย projection='3d'
- สร้างจุดข้อมูล R, Y และ z โดยใช้ numpy
- สร้างแผนผังพื้นผิวโดยใช้ R, Y และ z
- กำหนดอัตราส่วนโดยใช้ set_aspect('auto')
- บันทึกรูปโดยใช้วิธี savefig()
ตัวอย่าง
from matplotlib import pyplot as plt from matplotlib import cm import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig = plt.figure() ax = fig.gca(projection='3d') R, Y = np.meshgrid(np.arange(0, 100, 1), np.arange(0, 60, 1)) z = 0.1 * np.abs(np.sin(R / 40) * np.sin(Y / 6)) ax.plot_surface(R, Y, z, cmap=cm.rainbow, linewidth=0) ax.set_aspect('auto') ax.azim = -160 ax.elev = 30 fig.savefig('data.png') plt.show()
ผลลัพธ์