桑基图中的标签

Posted

技术标签:

【中文标题】桑基图中的标签【英文标题】:Labels in sankey diagram 【发布时间】:2021-06-20 21:09:50 【问题描述】:

我用 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)。到目前为止,一切都很好。但是为什么一个流的标签出​​现在源节点旁边,而另一个流的标签出​​现在目标节点旁边呢?我希望两个标签都显示在左侧节点旁边,而不是左侧节点旁边显示一个标签,右侧节点旁边显示一个标签。

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于桑基图中的标签的主要内容,如果未能解决你的问题,请参考以下文章

origin2017的桑基图在哪

清华学者用Python制作漂亮的流动桑基图

用户行为路径分析——附Python桑基图代码实现

使用 ActionScript 的桑基图

桑基图 python 绘制

如何使用 Plotly 制作简单的多级桑基图?