python - Plotly:后续如何使用 graph_objects 创建旭日子图?

标签 python plotly sunburst-diagram

尝试了之前问题中的示例,但我无法正确“渲染”:

# imports
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px

# data
df = pd.DataFrame({'BA':  ['BA1', 'BA2', 'BA3', 'BA4','BA2'],
                   'RS':   [12, 13,15, 20, 18],
                   'RC':    ['medium','medium', 'high','high','high'] })

# plotly express figure
fig = px.sunburst(df, path=["BA", "RC"])

fig.show()

# plotly graph_objects figure
fig2=go.Figure(go.Sunburst(
                labels=fig['data'][0]['labels'].tolist(),
                parents=fig['data'][0]['parents'].tolist(),
                            )
                )
fig2.show()

结果:

enter image description here enter image description here

我做错了什么? (我希望它看起来像第一张图片)..使用 conda + jupyter lab

最佳答案

如果你看一下 fig['data'],你会看到有一个名为 ids 的字段,它告诉 Plotly 如何将父级连接到标签。您还需要将其指定为参数。

编辑:如果您想以与 px.sunburst 相同的方式显示值,您还需要包含参数 branchvalues='total'

# plotly graph_objects figure
fig2=go.Figure(go.Sunburst(
    branchvalues='total',
    ids=fig['data'][0]['ids'].tolist(),
    labels=fig['data'][0]['labels'].tolist(),
    parents=fig['data'][0]['parents'].tolist(),
    values=fig['data'][0]['values'].tolist()
    )
)
fig2.show()

enter image description here

关于python - Plotly:后续如何使用 graph_objects 创建旭日子图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63910453/

相关文章:

javascript - 当节点太小时,如何在 d3 中隐藏文本标签?

python - 属性错误: 'NoneType' object has no attribute height in BST pythons height

python - 从 python 的 Queue.Queue 中删除最旧的项目(同步)

python - 将 Python 中的第一行替换为列表

python - 在 Github 托管站点中嵌入交互式 Bokeh 或 Plotly 图形

python - 为什么 plotly.offline.iplot( {'x' : [1, 2, 3], 'y' : [5, 2, 7]}) 不起作用?

javascript - 如何在过渡中移动文本标签

d3.js - 使用 d3.js 绘制旭日图的扇区

python - 使用 Python dataframe 高效地将数百万行写入文件

python - Plotly:如何使用下拉菜单在每日和每小时烛台之间进行更改?