在绘图sankey关系图中隐藏标签

2024-06-02 20:45:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在生成一个sankey图,其中每个节点都包含很多信息,只有当我将鼠标悬停在它上面时才会显示这些信息。我的问题是从Reference开始,我找不到方法

  • 隐藏概述上的标签,仅在悬停弹出窗口中显示或
  • 在弹出窗口上显示与label不同的信息

我发现的是hovertemplate-关键字,它应该能够将变量注入弹出窗口,但是我找不到一种方法将详细信息添加到节点dict中,除非是label。如果我试图引用例如customdata,它是我提供给Sankey对象的,但是这导致浏览器中的dev控制台在悬停(Uncaught TypeError: Cannot read property 'hasOwnProperty' of undefined)时出错,并且根本不会出现弹出窗口。在

import plotly.graph_objects as go

hovers = ["a"* 500] * 6
label = ["a"] * 6
source = [0, 1, 0, 2, 3, 3]
target = [2, 3, 3, 4, 4, 5]
value = [8, 4, 2, 8, 4, 2]

fig = go.Figure(data=[go.Sankey(
    customdata=hovers,
    arrangement="freeform",
    node=dict(
        pad=15,
        thickness=20,
        line=dict(color="black", width=0.5),
        label=label,
        color="blue",
    ),
    link=dict(
        source=source,
        target=target,
        value=value
    ))])

fig.update_layout(title_text="Basic Sankey Diagram", font_size=12)
fig.show()

label是简短描述的列表,hovers是完整描述的列表。如果我向节点dict提供hovers,结果如下所示

enter image description here

我不想用详细信息来滥发概述,而是希望在弹出窗口中只保留详细信息和标签,以便在不可能的情况下只保存摘要或根本不保存任何内容。有没有办法做到这一点?在

编辑/解决方法:

我找到了一个解决方法,在我的例子中,除了最后一个节点有0,每个节点只有一个传出连接。我可以用这个来添加输出连接的hoverinfo的完整信息。我不得不添加一个额外的输出节点,我的“真正的”最后一个节点可以连接到它。在


Tags: 方法信息gosourcetarget节点valuefig