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

如何让Plotly饼图始终保持相同尺寸

解决Plotly饼图因图例长度变化导致尺寸改变的问题

要让饼图始终保持固定尺寸,不受图例长度影响,可以通过以下两种方式实现:

方法1:指定饼图的显示域(Domain)

直接给go.Pie设置domain参数,固定饼图在画布中的占比区域,这样不管图例长短,饼图的大小都不会变化。

修改后的代码:

pie_chart = go.Pie(
    labels=labels, 
    values=y,
    # 固定饼图在x轴和y轴的显示范围,范围区间为0-1
    domain={'x': [0, 0.7], 'y': [0.1, 0.9]}
)
fig = go.Figure(data=[pie_chart])
fig.update_layout(
    legend={'font': {'size': 17}, 'x': 0.75},  # 把图例固定在饼图右侧位置
    width=900,
    height=500
)
io_bytes = fig.to_image(format="png", scale=2.5)
  • domain的x范围设为[0,0.7],预留右侧空间给图例;y范围[0.1,0.9]保证上下边距一致。
  • 图例的x位置设为0.75,固定在饼图右侧,避免图例挤压饼图区域。

方法2:固定布局边距(Margin)

通过update_layout设置固定的margin,确保图例占用的空间不会压缩饼图的显示区域:

pie_chart = go.Pie(labels=labels, values=y)
fig = go.Figure(data=[pie_chart])
fig.update_layout(
    legend={'font': {'size': 17}},
    width=900,
    height=500,
    # 固定左右上下边距,图例只会在预留的右侧边距内展示
    margin={'l': 50, 'r': 250, 't': 50, 'b': 50}
)
io_bytes = fig.to_image(format="png", scale=2.5)
  • 设置足够大的右侧边距r:250,让长图例有足够空间展示,饼图则在剩余的固定区域内显示,不会被挤压。

两种方法都能保证饼图尺寸一致,你可以根据自己的图例长度调整domain的范围或者margin的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:15:56