2015-06-08 32 views
3

我正在调查Sankey Diagrams使用R与networkD3软件包作为示例代码here。但是,我得到的只是一个空白的屏幕。该图应显示年龄组之间的感染流量(按性别)。我的代码如下:Sankey Diagram with networkD3 package will not plot

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) 

任何帮助非常感谢。

+0

我面临同样的问题。 sankeyNetwork与我正在使用的数据集的较小样本一起工作,但如果使用全集尝试,它会显示一个空白屏幕。 – Kinjal

回答

0

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

这对我的作品有两个小的修改:

  1. 装入卷曲包以及之初

    library("curl") 
    
  2. fontsize参数显然不工作,应予删除。

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

调整字号的工作,但你的说法缺少资本:fontSize的

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

我解决它,我通过确保源,目标和价值观都是数字。

例如: 能源$链接$值< - as.numeric(能源$链接$值)

+0

提问者发布了一个代码,应该在该代码中显示答案,并检查其他答复者 – Ibo