以相等比例设置matplotlib 3d轴

q35jwt9p  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(515)

受这条线索的启发,我试图从元组列表中绘制一个3d图形,元组是点的3d坐标。列表本身包含三个元组,因此包含三个点,定义了空间中的三角形。
以下是一个示例:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection

vertices = np.array([
    [ 2.5800e+06,  1.1090e+06,  1.6817e+03],
    [ 2.5300e+06,  1.1370e+06,  1.0996e+04],
    [ 2.5300e+06,  1.1350e+06,  2.2508e+04]])

fig = plt.figure(figsize=(4,4))
ax = fig.add_subplot(111, projection='3d')
ax.set_xlim(2530000.0, 2550000.0)
ax.set_ylim(1100000.0, 1140000.0)
ax.set_zlim(1000.,  2500.)
for i in range(4):
  ax.add_collection3d(Poly3DCollection([vertices]))

plt.show()

我遇到的问题是,即使在为绘图的三个轴设置一些界限值时,它们似乎没有正确缩放,因此,我的三角形的比例错误:

如何使用matplotlib在三维打印的三个轴上保持相同的比例?
我试着设置 plt.axis('equal') 但这表明了这一错误: NotImplementedError: Axes3D currently only supports the aspect argument 'auto'. You passed in 'equal'.

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题