You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly scatter_3d绘制3D散点图Z轴异常拉长如何解决?

问题描述

使用scatter_3d绘制3D散点图时,生成的图表沿Z轴异常拉长,尝试通过固定图表尺寸调整未生效,当前使用browser渲染器展示图表。
异常效果:
Z轴异常拉长的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
)

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 12:01:12