带有networkD3包的Sankey图将不会打印

带有networkD3包的Sankey图将不会打印,r,sankey-diagram,htmlwidgets,networkd3,R,Sankey Diagram,Htmlwidgets,Networkd3,我正在使用R中的networkD3包中的sankeyNetwork函数,以找到的代码为例。然而,我得到的只是一个空白屏幕。该图表应该显示年龄组之间的感染流(按性别)。我的代码如下: library(RCurl) library(networkD3) edges <- read.csv(curl("https://raw.githubusercontent.com/kilimba/data/master/infection_flows.csv"),stringsAsFactors = FA

我正在使用R中的
networkD3
包中的
sankeyNetwork
函数,以找到的代码为例。然而,我得到的只是一个空白屏幕。该图表应该显示年龄组之间的感染流(按性别)。我的代码如下:

library(RCurl)
library(networkD3)

edges <- read.csv(curl("https://raw.githubusercontent.com/kilimba/data/master/infection_flows.csv"),stringsAsFactors = FALSE )

nodes = data.frame(ID = unique(c(edges$Source, edges$Target)))

nodes$indx =0
for (i in 1:nrow(nodes)){
  nodes[i,]["indx"] = i - 1
}

edges2 <- merge(edges,nodes,by.x = "Source",by.y = "ID")
edges2$Source <-NULL
names(edges2) <- c("target","value","source")
edges2 <- merge(edges2,nodes,by.x = "target",by.y = "ID")
edges2$target <- NULL
names(edges2) <- c("value","source","target")

nodes$indx <- NULL
# Plot
sankeyNetwork(Links = edges2, Nodes = nodes,
              Source = "source", Target = "target",
              Value = "value", NodeID = "ID",
              width = 700, fontsize = 12, nodeWidth = 30)
库(RCurl)
图书馆(网络3)

edges您确定R控制台中没有打印错误吗

这对我来说只需要两个小修改:

  • 在开始时也加载curl包

    library("curl")
    
  • fontsize
    参数显然不起作用,应该删除

    # Plot
    sankeyNetwork(Links = edges2, Nodes = nodes,
          Source = "source", Target = "target",
          Value = "value", NodeID = "ID",
          width = 700, #fontsize = 12,
          nodeWidth = 30)
    

  • 调整fontsize确实有效,但您的参数缺少大写字母:fontsize

    sankeyNetwork(Links = edges2, Nodes = nodes,
      Source = "source", Target = "target",
      Value = "value", NodeID = "ID",
      width = 700, fontSize = 12,
      nodeWidth = 30)
    

    我通过确保源、目标和值都是数字来解决这个问题

    例如: 能源$链接$价值
  • 您不需要
    RCurl
    read.csv
    可以直接从URL读取
  • 在创建nodes data.frame时,使用
    stringsAsFactors=FALSE
    选项可能更安全
  • 正如其他人所指出的,您必须确保链接数据中的源变量和目标变量是数字的,并且它们是零索引的
  • 正如其他人所指出的,font-size参数正确命名为
    fontSize
  • 我提供了一种更直接的方法来创建带有nodes data.frame中节点的数字索引的链接数据
  • 库(networkD3)
    
    我也面临同样的问题。sankeyNetwork使用的是我使用的数据集的较小样本,但如果尝试使用完整的数据集,它会显示一个空白屏幕。询问者发布了一个代码,答案应该显示在该代码中,请检查其他回答者
    library(networkD3)
    
    edges <- read.csv("https://raw.githubusercontent.com/kilimba/data/master/infection_flows.csv",stringsAsFactors = FALSE)
    
    nodes = data.frame(ID = unique(c(edges$Source, edges$Target)), stringsAsFactors = FALSE)
    
    edges$Source <- match(edges$Source, nodes$ID) - 1
    edges$Target <- match(edges$Target, nodes$ID) - 1
    
    sankeyNetwork(Links = edges, Nodes = nodes,
                  Source = "Source", Target = "Target",
                  Value = "Value", NodeID = "ID",
                  width = 700, fontSize = 12, nodeWidth = 30)