Jupyter Notebook中Sunburst图表无法正常渲染问题求助
解决Plotly Sunburst双层图表不渲染的问题
核心问题排查
Sunburst图表能不能正常渲染,核心看层级关联关系有没有设置对。你这种第一层正常、第二层不显示的情况,大概率是parents参数没正确关联到第一层节点,或者数据格式不符合Plotly要求,和颜色设置关系不大。
常见错误点
你可能踩了这些坑:
- 第二层节点的
parents没设为第一层的标签"population" labels、parents、values三个列表的长度不一致- 没给第二层节点配置对应的权重值
values
正确实现代码示例
直接用下面的代码替换你的变量就能运行,完全符合你的需求:
import plotly.express as px # 定义层级标签 labels = ["population", "num_safe_hood1", "num_safe_hood2", "num_safe_hood3", "num_safe_hood4", "num_safe_hood5"] # 父节点关联:根节点父节点为空,第二层全部关联到population parents = ["", "population", "population", "population", "population", "population"] # 替换成你的实际权重数值 values = [100, 20, 30, 15, 25, 10] # 生成Sunburst图表 fig = px.sunburst( names=labels, parents=parents, values=values, # 可选:自定义颜色 color_discrete_sequence=px.colors.qualitative.Pastel ) fig.show()
关键参数说明
parents列表里,根节点"population"的父节点必须是空字符串""- 所有第二层节点的父节点都要设为
"population",明确层级归属 values里的数值决定每个扇形的大小,根节点数值可以设为第二层的总和,也可以随便填(Plotly会自动按比例展示)
新手实用技巧
- 调试优先
- 先打印
labels、parents、values的长度,确保三者完全一致 - 先只用2个第二层节点测试,确认能显示后再补全所有分类
- 先打印
- 颜色设置失效解决
如果自定义颜色没生效,直接用color_discrete_map指定单个节点颜色:color_discrete_map={ "population": "#ff7f0e", "num_safe_hood1": "#1f77b4" }
入门学习建议
- 先啃Plotly官方文档里的Sunburst基础示例,重点看层级数据结构部分
- 用Plotly在线编辑器直接修改官方示例,快速试错理解参数作用
- 尝试用CSV格式的层级数据导入,熟悉结构化数据的处理逻辑
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

