2015-06-08 30 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