首页 > 解决方案 > 可以使用 px.sunburst 编辑单个类别的字体大小和颜色吗?

问题描述

我创建了一个漂亮的px.sunburst图表。现在我想格式化旭日形的单个“节点”。例如,我想更改主“节点”的字体大小并使其变为粗体或更改特定“节点”的颜色。

不幸的是,我在Sunburst 文档中没有找到这样的功能 。

uniformtext仅格式化整个文本,color并且color_discrete_map我无法控制单个节点:

伪代码:

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='parent', 
    color_discrete_map={
        '': 'rgb(56, 75, 126)', 
        'Eve': 'lightgreen', 
        'Cain': 'black', 
        'Enos': 'black',
     },
)
     
fig.show()

在此处输入图像描述 有没有可能,即

我在文档中没有找到这样的功能。

标签: pythonplotlysunburst-diagram

解决方案


要单独更改这些朝阳节点的颜色,您需要设置color='character'. 保持你的离散地图这将导致:

在此处输入图像描述

对于字体大小,我会让阴谋解决这个问题,因为在幕后它正在调整字体大小以使其适合其区域。话虽这么说,您可以通过多种方式设置字体大小来实现您的目标:

使用fig.update_traces(textfont=dict(size=[20]))将设置第一项的字体大小。

在此处输入图像描述

要调整更多节点,请根据需要扩展数组以与 中的项目对齐character,例如:

fig.update_traces(textfont=dict(family=['Arial','Courier New'],size=[8,20,8]))

将第二个项目characterCourier New字体设置为 20,将第一个和第三个元素的字体大小设置为 8。

字体和大小

最后,将它们组合在一起(这可能取决于您可用的字体)设置 Eve 的字体大小并使其变为粗体:

fig.update_traces(textfont=dict(family=['Arial Black', 'Arial'],size=[15])) 所有的


推荐阅读