捆绑名称 Sankey plotly

Bundle name Sankey plot plotly

我想知道如何将 plotly 中的包名称添加到 Sankey 图。通过捆绑,我了解一列中的节点。来自 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()

我使用的技巧是:

  • 添加一个假散点(yNone
  • xaxes移到顶部
  • 将背景颜色更改为 white
  • 两轴去掉showgrid
  • xaxis
  • 上添加自定义刻度
  • 删除 yaxis
  • 上的刻度标签