2016-03-06 112 views
4

我的節點由名稱和組組成,但我似乎無法爲我的sankey圖中的組實現不同的顏色。使用下面的代碼,顏色可以全部爲藍色,也可以全部爲黑色。如何在networkD3的sankeyNetwork中對組進行顏色設置?

這是我使用的代碼:

sankeyNetwork(  
Links = data$links, 
Nodes = data$nodes, 
Source= "source", 
Target = "target", 
Value = "weight", 
NodeID = "names", 
fontSize = 15, 
NodeGroup = "group" 
)) 

這裏的我得到的輸出: enter image description here

+1

請包括一個小數據集生成的情節。 –

回答

0
library(networkD3) 
source <- c(0,1,2,3,4,5) 
target <- c(2,2,2,3,1,0) 
value <- c(33,44,55,66,77,88) 

sankeydata <- data.frame(source,target, value) 

names <- c('a', 'b', 'c', 'd', 'e', 'f') 
id <- c(0,1,2,3,4,5) 
group <- c(1,1,1,2,2,2) 

sankeyNodes <- data.frame(names,id, group) 


sankeyNetwork(Links = sankeydata, Nodes = sankeyNodes, Source = "source", 
     Target = "target", Value = "value", NodeID = "names", NodeGroup = "group", fontSize = 12, nodeWidth = 30) 

我希望兩個顏色(因爲有兩組),但沒有顏色返回。我與OP有同樣的問題。

幫助文本建議NodeGroup負責顏色。

如果您在庫(networkD3)爲另一個圖形類似的代碼:

#same data 
forceNetwork(Links = sankeydata, Nodes = sankeyNodes , Source = "source", 
     Target = "target", Value = "value", NodeID = "names", 
     Group = "group", opacity = 0.8, zoom = TRUE) 

地塊兩種不同的顏色在網絡圖。

0

Nodes數據幀中的NodeGroup向量需要爲非數字。這從文檔中並不明顯。由於您沒有提供您正在使用的數據,因此我們無法確定這是否是您遇到的問題,但在@ john-friel提供的示例中,這就是問題所在。下面是與正在該group矢量被強制轉換爲文字載體的唯一變化的工作示例...

library(networkD3) 
source <- c(0,1,2,3,4,5) 
target <- c(2,2,2,3,1,0) 
value <- c(33,44,55,66,77,88) 

sankeydata <- data.frame(source,target, value) 

names <- c('a', 'b', 'c', 'd', 'e', 'f') 
id <- c(0,1,2,3,4,5) 
group <- as.character(c(1,1,1,2,2,2)) 

sankeyNodes <- data.frame(names,id, group) 


sankeyNetwork(Links = sankeydata, Nodes = sankeyNodes, Source = "source", 
     Target = "target", Value = "value", NodeID = "names", 
     NodeGroup = "group", fontSize = 12, nodeWidth = 30) 
相關問題