如何为Plotly旭日图最内层标记绘制延伸至外层的加粗边框?
实现方案
可以实现这个需求,核心思路是给最内层节点所属的整个分支的所有扇形块统一设置加粗边框,利用Plotly旭日图每个独立扇形块可自定义边框的特性,实现视觉上的边框延伸效果。
具体步骤与代码示例
假设你的数据结构如下(近似真实数据):
import plotly.graph_objects as go # 构造示例数据 data = [ {"id": "Magic Kingdom", "parent": "", "value": 50}, {"id": "MK-Rides", "parent": "Magic Kingdom", "value": 30}, {"id": "MK-Food", "parent": "Magic Kingdom", "value": 20}, {"id": "Epcot", "parent": "", "value": 40}, {"id": "Epcot-Rides", "parent": "Epcot", "value": 25}, {"id": "Epcot-Shows", "parent": "Epcot", "value": 15}, ] # 标记属于最内层分支的节点 for item in data: item["is_core"] = item["id"] in ["Magic Kingdom", "Epcot"] or item["parent"] in ["Magic Kingdom", "Epcot"] # 构建旭日图并设置边框 fig = go.Figure(go.Sunburst( ids=[d["id"] for d in data], parents=[d["parent"] for d in data], values=[d["value"] for d in data], marker=dict( line=dict( # 核心分支边框加粗到3px,其他保持默认1px width=[3 if d["is_core"] else 1 for d in data], color="black" ) ) )) fig.update_layout(margin=dict(t=0, l=0, r=0, b=0)) fig.show()
效果说明
通过给Magic Kingdom和Epcot及其所有子节点的扇形块设置统一的加粗边框,视觉上会呈现出最内层边框延伸至所有外层的效果,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

