微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

节点标签未出现在 Python Plotly 的 Sankey 中

如何解决节点标签未出现在 Python Plotly 的 Sankey 中

使用 Python Plotly 尝试我的第一个桑基流程图。桑基流程图与正确的源和目标完美结合。但我无法包含节点标签标签位于数据框内。如果没有各种来源和目标的标签,图表是不完整的。这是我使用的代码。我的目标是得到一个静态图。

{link = dict(source = Service_df,target=Manufac_df,value=Revenue_df)}
{node = dict(label=Label_df,pad=50,thickness=5)}
{data = dict(type = 'sankey',hoverinfo = 'all',link = link,node=node)}
{fig = go.figure(data)}
{fig.show() }

后来,我尝试硬编码源和目标的标签。这也不起作用。

当我将鼠标悬停在图表上时,我收到消息来源:未定义目标:未定义。同时,当鼠标悬停在 Source 或 Target 时,可以看到传入和传出的流量计数。

我正在 Jupyter Notebook Python 3.8.5 中尝试这个

数据框如下:

{MainData.info()}

范围索引:31 个条目,0 到 30 数据列(共3列):

列非空计数数据类型


0 服务 31 非空 int64
1 制造商 31 非空 int64
2 收入 31 非空 float64 数据类型:float64(1)、int64(2)

{LabelData.info()}

范围索引:10 个条目,0 到 9 数据列(共1列):

列非空计数数据类型


0 标签 10 非空对象 数据类型:对象(1)

我得到的图像在这里https://drive.google.com/drive/folders/1QDc-qVyMYSTJNI0coNJf8Ehuq8tlL-mP?usp=sharing

解决方法

如果没有看到您的数据框,我会假设您的 Label_df 的形状/大小与 link 中的数据框不同。

import pandas as pd
import plotly.graph_objects as go

# mock data,identical to the plotly documentation https://plotly.com/python/sankey-diagram/
Label_df = pd.DataFrame(["A1","A2","B1","B2","C1","C2"])
Service_df = pd.DataFrame([0,1,2,3,3])
Manufac_df = pd.DataFrame([2,4,5])
Revenue_df = pd.DataFrame([8,8,2])

link = dict(source = Service_df[0],target=Manufac_df[0],value=Revenue_df[0])
# this works
node = dict(label=Label_df[0],pad=50,thickness=5)
data = dict(type='sankey',hoverinfo='all',link=link,node=node)
fig = go.Figure(data)
fig.show()

# this gives Source:Undefined Target:Undefined
node = dict(label=list(Label_df[0]),node=node)
fig = go.Figure(data)
fig.show()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?