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

Plotly scatter3d设置aspectmode为data时坐标轴比例不一致问题

Plotly 3D图表坐标轴16:9比例适配方案

你遇到的拉伸问题是aspectmode="data"的默认计算逻辑导致的:该模式下三个坐标轴的显示长度完全由各自的数值范围比值决定,你没有手动限定x轴(frame字段)的数值范围,x轴的数值范围会参与比例计算,最终打乱了y轴和z轴的16:9比例。

你当前渲染得到的异常拉伸效果图如下:
拉伸的图表,y轴显示长度是z轴的2到4倍

修复方法

将aspectmode改为manual手动指定各轴比例即可,确保y和z的比例为16:9,修改后的代码如下:

fig = go.Figure(
    data = go.Scatter3d(
        x=df['frame'], 
        y=df['x'], 
        z=df['y'],
        mode='markers',
        marker=dict(
            color=clusters.labels_,
            colorscale="Cividis",
            opacity=0.8
        )
    )
)
# 切换为手动比例模式
fig['layout']['scene']['aspectmode'] = "manual"
# 手动设置三轴比例,y:z严格为16:9,x的数值可根据实际frame范围按需调整
fig['layout']['scene']['aspectratio'] = {"x": 3, "y": 16, "z":9}
fig['layout']['scene']['zaxis']['range'] = [1080, 0]
fig['layout']['scene']['yaxis']['range'] = [0, 1920]
fig.show()
  • 如果你希望x轴也按实际数值比例显示,只需要将aspectratio中x的取值替换为x轴的实际数值范围长度即可,比如x轴frame的取值范围是0到600,就将x的值设为6。
  • 该配置不会受x轴数值范围影响,可以始终保证y轴和z轴的显示比例为16:9。

内容的提问来源于stack exchange,提问作者Austin Ulfers

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:15:00