You need to enable JavaScript to run this app. px.sunburst能否支持单个节点的字体大小、颜色等自定义格式设置?
优惠活动
大模型
产品
解决方案
定价
更多

px.sunburst能否支持单个节点的字体大小、颜色等自定义格式设置?

旭日图单节点自定义配置实现方案

你提到的两个自定义需求均完全可以实现,之前配置不生效的核心原因是参数绑定逻辑错配,具体实现方法如下:

独立控制单节点/指定分组节点颜色

你之前的颜色配置失效,本质是参数绑定错了:把color参数绑定为parent列时,color_discrete_map只会匹配parent列的实际取值做颜色映射,你在映射表中写的Cain、Enos是节点自身的名称,根本不在parent列的取值范围内,自然无法触发生效。
修正逻辑很简单:

  • 将color参数绑定为存储节点名称的列(也就是示例中的character列)
  • 在color_discrete_map中按节点名称做键值匹配,即可单独给任意节点指定颜色,也可以给Eve名下所有子节点的映射键配置相同颜色,实现分组统一配色
    比如要给Eve本身设置深藏蓝,给Eve的所有直接子节点统一设置浅绿,只需要在映射表中给每个子节点对应相同的浅绿色值即可。

独立调整指定节点的字体大小、加粗样式

uniformtext是全局统一配置参数,仅能控制全图文本的截断规则和全局字号逻辑,不支持节点级别的细粒度配置。
由于px.sunburst生成的图表本质是graph_objects.Sunburst类型的trace实例,你不需要靠px的透传参数绕路,在图表生成完成后可以直接对目标节点的样式做覆写:

  • 遍历trace对象中保存的节点标签数组,找到目标节点(比如主节点Eve)对应的索引位置
  • 对该位置的节点单独设置textfont属性,自定义字号、字重(加粗)即可,该配置只会作用于目标节点,不会影响其他节点的字体样式

可直接运行的完整示例代码

import plotly.express as px 

data = dict(
    character=["Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"],
    parent=["", "Eve", "Eve", "Seth", "Seth", "Eve", "Eve", "Awan", "Eve" ],
    value=[10, 14, 12, 10, 2, 6, 6, 4, 4],
)
        
fig = px.sunburst(
    data,
    names='character',
    parents='parent',
    values='value',
    # 绑定为节点名称列,支持单节点级别的颜色匹配
    color='character', 
    color_discrete_map={
        # 根节点Eve的配色
        'Eve': 'rgb(56, 75, 126)', 
        # Eve的所有直接子节点统一配置浅绿
        'Cain': 'lightgreen', 
        'Seth': 'lightgreen',
        'Abel': 'lightgreen',
        'Awan': 'lightgreen',
        'Azura': 'lightgreen',
        # 孙节点单独定制配色
        'Enos': 'darkgreen',
        'Noam': 'darkgreen',
        'Enoch': 'teal',
     },
)

# 单独给Eve节点配置专属字体样式
target_label = "Eve"
trace = fig.data[0]
# 按标签数组的顺序找到目标节点的索引
target_idx = trace.labels.index(target_label)
# 单独设置该节点字体大小为15、加粗
trace.textfont[target_idx].update(size=15, weight="bold")
     
fig.show()

注意:如果你的图表存在重名节点,建议匹配索引时结合节点的父级关系做二次校验,避免错配位置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 22:45:04