R:将标题添加到networkD3绘图并保存

R:将标题添加到networkD3绘图并保存,r,d3.js,htmlwidgets,networkd3,htmltools,R,D3.js,Htmlwidgets,Networkd3,Htmltools,我感兴趣的是在用magrittr创建的forceNetwork图中添加一个标题,并用magrittr导出html 在中找到解决方案以添加标题。然后,我被引导在@timelyportfolio的StackOverflow问题-答案中添加htmltoolbrowsable()参数 下面我提供了一个简单的工作示例,用于添加标题,然后保存没有标题的网络,最后尝试将两者结合起来 library(networkD3) library(htmltools) # Load data data(MisLinks

我感兴趣的是在用magrittr创建的forceNetwork图中添加一个标题,并用magrittr导出html

在中找到解决方案以添加标题。然后,我被引导在@timelyportfolio的StackOverflow问题-答案中添加htmltool
browsable()
参数

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

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')
system.file(config,package=package)中出错:
“包”的长度必须为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')

我没有过多地使用
networkD3
,但感觉类似的问题已经被记录在案,它说“
htmlwidget::saveWidget
设计用于保存单个
htmlwidget
,因此
mapSync
失败,因为它由多个
htmlwidget
组成。”
browsable
创建的对象有两个属性。在RStudio中,您可以直接单击导出到html选项,该选项可以。。。但是,是的,我也不会对这个解决方案感到太高兴。让我再多转一转,看看还有什么其他的方法有效。。。