Plotly scatter_3d绘制3D散点图Z轴异常拉长如何解决?
问题描述
使用scatter_3d绘制3D散点图时,生成的图表沿Z轴异常拉长,尝试通过固定图表尺寸调整未生效,当前使用browser渲染器展示图表。
异常效果:
原有实现代码:
pio.renderers.default='browser' fig = px.scatter_3d(df_pmt, x='x', y='y', z='z', color='Generation', size='Generation', size_max=18, opacity=0.9) fig.update_layout( autosize=False, width=500, height=500 ) fig.show()
原因说明
3D坐标系的轴比例默认不会随画布尺寸自动适配,仅修改画布宽高不会改变三个坐标轴的相对缩放规则,因此无法解决单轴拉长的变形问题,该表现和使用的渲染器无关。
修复方法
在update_layout中添加scene配置,指定3D场景的轴比例模式即可:
pio.renderers.default='browser' fig = px.scatter_3d(df_pmt, x='x', y='y', z='z', color='Generation', size='Generation', size_max=18, opacity=0.9) fig.update_layout( autosize=False, width=500, height=500, # 新增3D场景比例配置 scene = dict(aspectmode='cube') ) fig.show()
如果需要自定义轴比例,可以使用手动模式按需调整三个轴的相对长度:
scene = dict( aspectmode='manual', aspectratio=dict(x=1, y=1, z=0.8) # 数值为各轴相对长度比例,按需修改 )
常用aspectmode参数说明:
cube:强制三个轴长度完全一致,渲染为正立方体坐标系,适合三轴数据范围接近的场景data:严格按照三轴数据的实际范围比例渲染,保留真实数据比例auto:默认配置,由系统自动匹配比例,是导致异常拉长的原因manual:完全自定义三轴相对比例,灵活度最高
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

