我想知道如何将包名称添加到桑基图中。通过捆绑我了解一列中的节点。来自 plotly 教程:
import plotly.graph_objects as go
fig = go.Figure(data=[go.Sankey(
node = dict(
pad = 15,
thickness = 20,
line = dict(color = "black", width = 0.5),
label = ["A1", "A2", "B1", "B2", "C1", "C2"],
color = "blue"
),
link = dict(
source = [0, 1, 0, 2, 3, 3], # indices correspond to labels, eg A1, A2, A2, B1, ...
target = [2, 3, 3, 4, 4, 5],
value = [8, 4, 2, 8, 4, 2]
))])
fig.update_layout(title_text="Basic Sankey Diagram", font_size=10)
fig.show()
我在文档中找不到此选项,也无法找到破解它的方法。
最佳答案
您认为这可以作为一个起点吗?
fig = go.Figure()
fig.add_trace(go.Sankey(
node = dict(
pad = 15,
thickness = 20,
line = dict(color = "black", width = 0.5),
label = ["A1", "A2", "B1", "B2", "C1", "C2"],
color = "blue"
),
link = dict(
source = [0, 1, 0, 2, 3, 3], # indices correspond to labels, eg A1, A2, A2, B1, ...
target = [2, 3, 3, 4, 4, 5],
value = [8, 4, 2, 8, 4, 2]
)))
fig.add_trace(go.Scatter(x=[0,1,2], y=[None]*3))
fig.update_xaxes(side='top')
fig.update_layout(title_text="Basic Sankey Diagram",
title_x=0.5,
font_size=10,
plot_bgcolor='white',
xaxis = dict(showgrid=False,
tickmode = 'array',
tickvals = [0, 1, 2],
ticktext = ["bundle name 1", "bundle name 2", "bundle name 3"]),
yaxis = dict(showgrid=False,
showticklabels=False)
)
fig.show()
我使用的技巧是:
- 添加假散点(
y
为None
) - 将
xaxes
移至顶部 - 将背景颜色更改为
白色
- 去掉两个轴上的
showgrid
- 在
xaxis
上添加自定义刻度 - 删除
y 轴
上的刻度标签
关于plotly - 捆绑名称 Sankeyplotly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61460424/