首页 > 解决方案 > plotly sankey图定位

问题描述

我想为 Plotly Sankey 图添加一些注释。
而且我想将它们绘制在 sankey 节点块上(具有相同的 x 位置),但找不到这样做的方法,甚至找不到节点的 X 坐标。(认为​​获得它们而不是手动添加会更好,因为 sankey 级别的数量可能会改变)

如果我们以这个基本示例为例,我想在相应的节点上添加“A”、“B”和“C”标签

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, A1, 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()

标签: pythonplotlysankey-diagram

解决方案


您可以fig.add_annotation()在这种情况下使用。在下面添加以下行fig.update_layout()

fig.add_annotation(dict(font=dict(color="black",size=12), x=0, y=1.06, showarrow=False, text='<b>A</b>'))
fig.add_annotation(dict(font=dict(color="black",size=12), x=0.5, y=1.06, showarrow=False, text='<b>B</b>'))
fig.add_annotation(dict(font=dict(color="black",size=12), x=1, y=1.06, showarrow=False, text='<b>C</b>'))

你会得到如下图。您可以根据需要修改代码。 在此处输入图像描述


推荐阅读