Plotly技术求助:如何调整地图上饼图的大小?
调整Plotly地图上饼图大小的方法
你当前代码里控制饼图大小的核心参数是domain_x和domain_y,这两个参数接受0到1之间的元组,代表饼图在整个画布中的占比范围,元组两端的差值越大,饼图对应方向的尺寸就越大。
具体调整方式
1. 添加饼图时直接设置尺寸
修改go.Pie中的domain_x和domain_y参数,扩大数值范围即可放大饼图:
fig = go.Figure() # 调整domain参数扩大饼图尺寸 fig.add_trace(go.Pie( values=[17674,12279,11963,10384,5858], labels=['Meals','Processed proteins','Bakery','Snacks','Vegetables'], # x方向占画布10%到50%,y方向占20%到60%,饼图尺寸明显变大 domain_x=(0.1, 0.5), domain_y=(0.2, 0.6) )) fig.update_traces(showlegend=False,selector=dict(type='pie')) # 地图背景设置保持不变 fig.add_layout_image( dict( source="path_to_blank_map", x=0, y=1.2, sizex=1.8, sizey=2, opacity=0.5, layer="below") ) fig.update_layout(template="plotly_white",height=800,width=1200) fig.show()
2. 用update_traces批量调整(适合多饼图场景)
如果需要后续修改饼图大小,可通过update_traces针对饼图trace调整:
# 针对所有饼图trace调整尺寸 fig.update_traces( domain_x=(0.2, 0.6), domain_y=(0.3, 0.7), selector=dict(type='pie') )
参数说明
domain_x=(a, b):饼图在x轴方向的起始/结束位置(相对于画布宽度的比例,0为最左,1为最右),b - a的差值决定饼图宽度。domain_y=(c, d):饼图在y轴方向的起始/结束位置(相对于画布高度的比例,0为最下,1为最上),d - c的差值决定饼图高度。
你可以根据地图背景的位置,灵活调整这两个参数的数值,让饼图大小和位置适配地图区域。
内容的提问来源于stack exchange,提问作者Tristan Salord
相关产品推荐
相关产品推荐

