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

