如何在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
相关产品推荐
相关产品推荐

