桑基图中的标签

Labels in sankey diagram

我用 Plotly 创建了一个桑基图,但我不明白其中的行为。

import plotly.graph_objects as go

fig = go.Figure(go.Sankey(
    arrangement = "snap",
    node = {
        "label": ['F1', 'F2'], 
        'pad':10 
        },  
    link = {
        "source": [1,2], 
        "target": [0,0], 
        "value": [1,1]
        }))

fig.show()

fig.write_image('output.png')

输出为:

...我指定了两个流程。两者具有相同的目标节点 (0)。到目前为止,一切都很好。但是为什么一个流的标签显示在源节点旁边,而另一个流的标签显示在目标节点旁边?我希望这两个标签都显示在左侧的节点旁边,而不是左侧节点旁边的一个标签和右侧节点旁边的一个标签。

为什么两个标签都没有显示在左侧的两个节点旁边?

我认为标签没有显示在节点旁边,因为它在定义标签时也会考虑源节点,因此只需删除第一个值(通过将其设为空字符串),您就可以完成你正在寻找的东西。

import plotly.graph_objects as go

fig = go.Figure(go.Sankey(
    arrangement = "snap",
    node = {
        "label": ['', 'F1', 'F2'], 
        'pad':10 
        },  
    link = {
        "source": [1,2,], 
        "target": [0,0], 
        "value": [1,1]
        }))

fig.show()