Plotly Sankey图:颜色默认为黑色,标签未显示

问题描述

使用Plotly库获取一个简单的Sankey图可以使我最困难。数据很简单: 个人分为六个不同类别(UE,UI,EU,EI,IE,IU)。 每个月,个人都可以从一个小组转移到另一个小组。 行具有基于个人所移居类别的颜色值。

问题: 首先,节点标签根本不显示。其次,如果我为节点指定了除单色以外的任何颜色(即“红色”),则所有节点认为黑色。我尝试了一个列表中任意数量的颜色,该颜色与列表中的节点数量以及实际所需的输出数量相同,即6种颜色,每组一种。

我真的不确定我在做什么错。代码

"""
sample csv file 
idx,rownum,this_month,next_month,this_flow,flow_source,next_flow,flow_target,count,color
0,268,201703,201704,UE,102,EI,107,50,"rgba(23,190,207,0.8)"
1,272,108,636,0.8)"
2,276,EU,109,453,0.8)"
3,280,UI,101,IU,111,30,"rgba(31,119,180,0.8)"
4,284,112,15,0.8)"
5,267,105,1,"rgba(188,189,34,0.8)"
6,271,57,0.8)"
7,275,0.8)"
8,279,100,"rgba(148,103,0.8)"
9,283,18,0.8)"
10,266,IE,104,438,"rgba(127,127,0.8)"
11,270,29,0.8)"
12,274,0.8)"
13,278,110,0.8)"
14,282,0.8)"
15,265,9,"rgba(227,194,0.8)"
16,269,576,0.8)"
17,273,431,0.8)"
18,277,612,0.8)"
19,281,16,0.8)"
"""

import plotly.graph_objects as go
import pandas as pd

# variables
source_id = df['flow_source'].values.tolist()
target_id = df['flow_target'].values.tolist()
ilo_source = df['this_flow'].values.tolist()
ilo_target = df['next_flow'].values.tolist()
this_month = df['this_month'].values.tolist()
next_month = df['next_month'].values.tolist()
count = df['count'].values.tolist()
color = df['color'].values.tolist()

# Sankey diagram
fig = go.figure(data=[go.Sankey(
        node = dict(
        pad = 15,thickness = 20,line = dict(color = "black",width = 0.5),label = ilo_source,color = color
    ),link = dict(
        source = source_id,target = target_id,value = count
    ))])
fig.update_layout(title_text="Labour market flows",font_size=15)
fig.show()

这是输出-黑色节点,没有标签。在Google Colab和VSCode中结果相同:

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...