Диаграмма Санди в сетиd3 не будет печататься до HTML - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь создать сеть Sankey для потока энергии из данных, импортированных из таблиц Excel. Мне не нужно, чтобы он был интерактивным, и я думаю, что у меня есть правильный код. Однако когда я запускаю код в R Markdown, он просто создает пустое пространство - без диаграммы. Код следующий:

library(dplyr)
library(shiny)
library(htmlwidgets)
library(networkD3)

nodes = data.frame("name" = c(Energy$`Alberta Energy Flow in 2015: PJ`[2:11], Energy$...5[1], Energy$...6[1], Energy$...7[1], Energy$...8[1], Energy$...9[1], Energy$...10[1], Energy$...11[1],Energy$...2[13],Energy$...3[13] ), stringsAsFactors = FALSE)
links = as.data.frame(matrix(c(
  0, 10, Energy$...5[2],
  1, 10, Energy$...5[3],
  2, 10, Energy$...5[4],
  3, 10, Energy$...5[5],
  4, 10, Energy$...5[6],
  5, 10, Energy$...5[7],
  6, 10, Energy$...5[8],
  7, 10, Energy$...5[9],
  8, 10, Energy$...5[10],
  9, 10, Energy$...5[11],
  0, 12, Energy$...7[2],
  1, 12, Energy$...7[3],
  #code continues as such for a while
  byrow = TRUE, ncol = 3 ))
names(links)=c("source", "target", "value")
s <- sankeyNetwork(Links=links, Nodes=nodes, Source="source", Target="target",Value="value", NodeID="name", fontSize=12, nodeWidth=25 )

sankeyNetworkOutput("ABEnergy15.html", width = "500px", height = "1000px")

1 Ответ

0 голосов
/ 23 марта 2020

sankeyNetworkOutput() используется для приложений Shiny, поэтому вы, вероятно, не хотите его использовать.

Если вы хотите использовать его в RMarkdown, вы, вероятно, захотите добавить s в последнюю строку вашего куска кода, потому что это скажет R «напечатать» объект s, который содержит htmlwidget, созданный sankeyNetwork().

Если вы хотите сохранить его в файл, который выглядит как основанный в вашем коде с html именем файла попробуйте использовать ...

saveNetwork(s, "ABEnergy15.html")
...