как правильно рендерить Sankeynetwork в flexdashboard - PullRequest
0 голосов
/ 24 марта 2020

Я сделал действительно хорошую, но большую , используя пакет в . Есть 173 узла с 4 уровнями (898) ссылок. хорошо отображается в . Однако, когда я рендерил его в , я получаю только сжатую диаграмму с очень тонкими связями без узлов. Мой пример кода ниже:

library(networkD3)
library(plyr)
library(tidyverse)

#the link data
sdg_san3 <- TY %>% group_by(Target_Conditions, SDI) %>% add_count(SDI) %>% mutate(value = n * 100)
colnames(sdg_san3) <- c("source", "target", "n", "value")

#the node data 
NOD_sdg3 <- data.frame(name = c(as.character(sdg_san3$source), as.character(sdg_san3$target)) %>% unique())

#making the Sankey
sdg_san3$sdsource <- match(sdg_san3$source, NOD_sdg3$name)-1
sdg_san3$sdtarget <- match(sdg_san3$target, NOD_sdg3$name)-1
s3 <- networkD3::sankeyNetwork(Links = sdg_san3, Nodes = NOD_sdg3, 
                         Source = 'sdsource', Target = 'sdtarget', 
                         Value = 'value', NodeID = 'name', units = 'frequency', fontSize = 12, nodeWidth = 45, height = 1500, width = 1200)
s3

В flexdashboard я получаю изображение ниже:

enter image description here

Я изменил код с функциями рендеринга, как показано ниже:

output$sankey1 <- renderSankeyNetwork({
sdg_san3 <- TY %>% group_by(Target_Conditions, SDI) %>% add_count(SDI) %>% mutate(value = n * 100)
colnames(sdg_san3) <- c("source", "target", "n", "value")

#the node data 
NOD_sdg3 <- data.frame(name = c(as.character(sdg_san3$source), as.character(sdg_san3$target)) %>% unique())

#making the Sankey
sdg_san3$sdsource <- match(sdg_san3$source, NOD_sdg3$name)-1
sdg_san3$sdtarget <- match(sdg_san3$target, NOD_sdg3$name)-1
networkD3::sankeyNetwork(Links = sdg_san3, Nodes = NOD_sdg3, 
                         Source = 'sdsource', Target = 'sdtarget', 
                         Value = 'value', NodeID = 'name', units = 'frequency', fontSize = 12, nodeWidth = 45, height = 30000, width = 15000)
})
sankeyNetworkOutput("sankey1")

И я по-прежнему получаю тот же результат, что и изображение выше, только с более широкими промежутками между узлами, которые должны быть. Любая помощь, чтобы правильно оказать в панели инструментов будет оценена. Спасибо

...