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

如何在Plotly Graph Objects中设置可视区域,避免图形变形

解决Plotly绘制正方形变形及自定义可视区域的问题

要让Plotly绘制的正方形不变形,同时将可视区域右上角固定为(10,10),需要同时控制轴范围和轴比例,而非仅调整画布尺寸。以下是具体解决方案:

修改后的代码

import plotly.graph_objects as go

fig = go.Figure()

fig.update_layout(
    autosize=False,
    width=500,
    height=500,
    paper_bgcolor='rgba(0,0,0,0)',
    plot_bgcolor='rgba(0,0,0,0)'
)

# 设置轴范围和比例,核心修改部分
fig.update_xaxes(
    showgrid=False, 
    zeroline=False, 
    visible=False,
    range=[0, 10],  # 固定x轴范围0到10
    scaleanchor="x",  # 将y轴比例锚定到x轴
    scaleratio=1  # 强制轴比例为1:1
)
fig.update_yaxes(
    showgrid=False, 
    zeroline=False, 
    visible=False,
    range=[0, 10]  # 固定y轴范围0到10
)

fig.add_shape(type="rect",
    x0=0, y0=0, x1=4, y1=4,
    line=dict(color="Red"),
)
fig.add_shape(type="rect",
    x0=1, y0=1, x1=2, y1=2,
    line=dict(color="Red"),
)

fig.show()

关键参数说明

  • range=[0,10]:直接定义x、y轴的显示范围,将可视区域右上角固定为(10,10),原本的矩形会因范围扩大而显示得更小,符合预期效果。
  • scaleanchor="x" + scaleratio=1:强制x轴和y轴的单位长度在视觉上完全相等,彻底避免正方形被拉伸或变形。
  • 保留width=500和height=500:确保画布本身为正方形,配合轴比例设置,最终图形不会出现失真。

内容的提问来源于stack exchange,提问作者Daniel Cruz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:35:22