![](/img/trans.png)
[英]Sankey Diagram with multiple colums and weight column - using NetworkD3 package
[英]Sankey Diagram with networkD3 package will not plot
我在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)
您確定R控制台中沒有打印錯誤嗎?
這適用於我兩個小修改:
在開始時也加載卷曲包
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)
我通過確保源,目標和值都是數字來解決它。
例如:Energy $ links $ value < - as.numeric(Energy $ links $ value)
RCurl
, read.csv
能夠直接從URL讀取 stringsAsFactors = FALSE
選項可能更安全 fontSize
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.