R:为网络D3绘图添加标题并保存



我有兴趣为使用NetworkD3创建的forceNetwork图添加标题,并使用magrittr导出html。

在 R: HTML 标记对象帮助页面中找到了用于添加标题的解决方案。然后我被指示在"更改 networkD3 图的背景颜色"堆栈溢出问题中添加 htmltool browsable()参数 - 来自@timelyportfolio的答案。

下面我提供了一个最小的工作示例,用于添加标题,然后保存没有标题的网络,最后是我将两者结合起来的非工作尝试。

library(networkD3)
library(htmltools)
# Load data
data(MisLinks)
data(MisNodes)
# Plot with title in R Viewer
browsable(
  tagList(
    tags$h1("Title"),
      forceNetwork(Links = MisLinks, Nodes = MisNodes,
                   Source = "source", Target = "target",
                   Value = "value", NodeID = "name",
                   Group = "group", opacity = 0.8)
  )
)

虽然我可以使用 magrittr %>% 保存没有标题的 :

library(magrittr)
# Plot and save to Mis.html
forceNetwork(Links = MisLinks, Nodes = MisNodes,
                 Source = "source", Target = "target",
                 Value = "value", NodeID = "name",
                 Group = "group", opacity = 0.8)%>%  
      saveNetwork(file = 'Mis.html')

我在将两者结合起来时遇到问题,而不会收到以下错误。

#Plot with title and save to title_Mis.html
browsable(
  tagList(
    tags$h1("Title"),
      forceNetwork(Links = MisLinks, Nodes = MisNodes,
                   Source = "source", Target = "target",
                   Value = "value", NodeID = "name",
                   Group = "group", opacity = 0.8)
  )
)%>%  
  saveNetwork(file = 'title_Mis.html')

系统文件(配置,包=包)中的错误:
"包裹"的长度必须为 1

抱歉,如果这只是一个简单的调试,但我不是程序员。

htmltools::tagList() 函数不像 forceNetwork() 函数那样返回htmlwidget,因此它不会输出 networkD3::saveNetwork() 函数的有效输入。尝试使用htmlwidgets::prependContent()像这样添加标题...

library(networkD3)
library(magrittr)
library(htmlwidgets)
library(htmltools)
data(MisLinks)
data(MisNodes)
forceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source", 
             Target = "target", Value = "value", NodeID = "name",
             Group = "group", opacity = 0.8) %>% 
  htmlwidgets::prependContent(htmltools::tags$h1("Title")) %>% 
  saveNetwork(file = 'title_Mis.html')

相关内容

  • 没有找到相关文章

最新更新