python - 可以使用 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()
- 分别改变 Eve 的“子节点”的颜色?
- 将“主节点”Eves 字体大小更改为 15 和粗体?
我在文档中没有找到这样的功能。
解决方案
要单独更改这些朝阳节点的颜色,您需要设置color='character'
. 保持你的离散地图这将导致:
对于字体大小,我会让阴谋解决这个问题,因为在幕后它正在调整字体大小以使其适合其区域。话虽这么说,您可以通过多种方式设置字体大小来实现您的目标:
使用fig.update_traces(textfont=dict(size=[20]))
将设置第一项的字体大小。
要调整更多节点,请根据需要扩展数组以与 中的项目对齐character
,例如:
fig.update_traces(textfont=dict(family=['Arial','Courier New'],size=[8,20,8]))
将第二个项目character
的Courier New
字体设置为 20,将第一个和第三个元素的字体大小设置为 8。
最后,将它们组合在一起(这可能取决于您可用的字体)设置 Eve 的字体大小并使其变为粗体:
fig.update_traces(textfont=dict(family=['Arial Black', 'Arial'],size=[15]))
推荐阅读
- javascript - 棋盘画布,循环并在 JS 画布中将一些棋子作为圆圈
- css - 内部带有 for 循环的 SCSS 函数不起作用
- json - 不支持“freeplay”(字符串)类型
- python - python regex:在javascript函数中搜索变量内容
- python - Python dictionary.values() 到 numpy 数组
- python - 在列表中查找术语
- azure - 如何使用 Graph API 仅从 O365 获取内部消息
- react-native - 使用 react-native-redux-toast 时未定义 ToastActionsCreators
- java - 在列表视图中实现搜索
- django - Django - 检测页面中提交了哪个表单