Matplotlib 3.6.3中设置3D绘图视角距离的替代方法
替代Matplotlib 3.6+中
ax.dist的视角距离设置方法 在Matplotlib 3.6及以上版本中,ax.dist属性已被弃用,你可以通过以下方式实现类似的视角缩放效果,同时解决视觉伪影问题:
1. 调整坐标轴范围实现缩放
直接缩小数据的显示范围,等效于拉近相机距离(放大视图):
# 设置仰角和方位角(替代原有的ax.elev和ax.azim) ax.view_init(elev=45, azim=10) # 获取当前坐标轴范围 x_min, x_max = ax.get_xlim3d() y_min, y_max = ax.get_ylim3d() z_min, z_max = ax.get_zlim3d() # 缩放因子小于1则放大视图,大于1则缩小 scale_factor = 0.5 ax.set_xlim3d(x_min * scale_factor, x_max * scale_factor) ax.set_ylim3d(y_min * scale_factor, y_max * scale_factor) ax.set_zlim3d(z_min * scale_factor, z_max * scale_factor)
2. 用set_box_aspect修正轴比例(消除伪影)
视觉伪影大多源于坐标轴比例不协调,设置统一的轴比例可以有效解决,同时配合视角调整:
ax.view_init(elev=45, azim=10) # 根据你的数据设置三个轴的比例,[1,1,1]表示等比例显示 ax.set_box_aspect([1, 1, 1]) # 若需进一步放大,可结合上面的坐标轴范围调整方法
额外优化:切换正交投影减少伪影
如果使用默认的透视投影仍有伪影,可以切换到正交投影:
ax.set_proj_type('ortho')
内容的提问来源于stack exchange,提问作者user20787420
相关产品推荐
相关产品推荐

