matplotlib 3D 解决谜之椭圆问题

想用matplotllib 3D 画球,然而发现侧视图和俯视图长的谜之不一样


perfect down view!

what rubbish is this??

侧视图为什么是个椭圆啊喂!
寻思着matlab里画很完美啊,对照了下示例代码,发现少了个 axis equal.
Matplotlib 3D 不直接支持 axis equal.
stackflow 大法好,解决方案如下, 重点倒数第二行

fig = plt.figure(figsize=(3,3), dpi=120)
ax=fig.add_subplot(111,projection='3d')
ax.view_init(elev=0,azim=90)
ax.scatter(shape1.T[0], shape1.T[1], shape1.T[2],c='k',marker='.',s=10,linewidth=0,alpha=1,cmap='spectral')
plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
plt.xlim([-1, 1])
plt.ylim([-1, 1])
ax.set_zlim([-1, 1])
ax.set_box_aspect((np.ptp(shape1.T[0]), np.ptp(shape1.T[1]), np.ptp(shape1.T[2])))
plt.axis('off')

完美小球球 get! (๑•̀ㅂ•́)و✧


image.png

然而一个小时过去了。。。我是个废物。。٩ (๑> 灬 <)۶

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容