首页 > 解决方案 > Networkd3 Sankey 图不会打印到 HTML

问题描述

我正在尝试根据从 excel 表导入的数据创建一个用于能量流的 Sankey 网络。我不需要它是交互式的,我认为我的代码是正确的。但是,当我在 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")

标签: rr-markdownhtmlwidgetsnetworkd3

解决方案


sankeyNetworkOutput()用于闪亮的应用程序,所以你可能不想使用它。

如果你想在 RMarkdown 中使用它,你可能想添加s到代码块的最后一行,因为这会告诉 R “打印”包含创建s的 htmlwidget 的对象sankeyNetwork()

如果您想将其保存到一个文件中,这似乎基于您的代码具有 html 文件名,请尝试使用...

saveNetwork(s, "ABEnergy15.html")

推荐阅读