R中的NetworkD3 Sankey Diagram:如何在LinkGroup的sankey图中显示数据集的不同子类别?

问题描述

我正在用 R 制作桑基图,但在使用 LinkGroup 代码时遇到问题。我附上了我的代码部分,这些部分应该解释问题和数据的头部。我有一个没有产品图例的当前图,并且我还附加了我最终希望 R 使用 LinkGroup 函数自动执行的操作(现在我手动构建了图例以进行说明)。

我目前有一个包含源和目标(国家/地区)的桑基图,产品('major_prod')在源和目标之间转移。我想显示包含转移的不同产品(牛肉、棕榈油、小麦等)的图例

这是一个可重现的示例。问题仍然是sankey有颜色,但产品的图例(肉、棕榈油、米果等)没有显示

library(htmltools)
library(htmlwidgets)
library(magrittr)
library(networkD3)
library(tidyr)

Sankey <- data.frame("origin" = c('country A','country A','country B','country C','country C'),"destination" = c('country B','country D','country E','country E'),'product' = c('Meat','Palm oil','Meat','Wheat','Other','Rice','Nuts'),'number' = c(10,10,20,30,40,35,50,10)) 

nodes <- as.data.frame(union(unique(Sankey$origin),unique(Sankey$destination))) %>%
rename(Countries = 1)

Sankey$ID_major_Origin_EU <- match(Sankey$origin,nodes$Countries)-1 
Sankey$ID_major_Destination_EU <- match(Sankey$destination,nodes$Countries)-1

Sankey$ID_major_Origin_EU <- match(Sankey$origin,nodes$Countries)-1

head(Sankey)
nodes %<>% tidyr::separate(Countries,"Countries",sep = "_")

sankeyNetwork(Links = Sankey,Nodes = nodes,Source = "ID_major_Origin_EU",Target = "ID_major_Destination_EU",Value = "number",NodeID = "Countries",units = "t dm",fontSize = 20,nodeWidth = 30,height = 600,#sinksRight = T,LinkGroup = c("product")) %>%
htmlwidgets::prependContent(htmltools::tags$h1("2013 - embodied HANPP"))

我想在桑基图的一侧显示一个包含“产品”的图例,但我找不到方法。有什么提示解决方案吗?

解决方法

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

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

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