2017-09-19 1 views
1

forcnetwork에서 그룹 및 colourscale 네트워크에서 색을 찾을 수 있습니다. 두 가지 다른 그룹 (색상은 두 개의 다른 변수 사이의 사용자 입력을 기반으로 노드에 적용됨)을 갖고 싶습니다. 그것을 가질 수 있습니까? 그렇다면 어떻게?ColourScale ForceNetwork (NetworkD3) in R Shiny

Forcenetwork - https://www.rdocumentation.org/packages/networkD3/versions/0.4/topics/forceNetwork

도움의 모든 종류의 유용 할 것입니다. 감사합니다.

답변

1

colourScale 매개 변수는 색상 표를 결정하고 group 매개 변수는 각 노드의 그룹을 구별하는 값이 포함 된 노드 데이터 프레임의 벡터 이름을 결정합니다. networkD3은 데이터의 고유 그룹마다 색상 표에서 고유 한 색상을 자동으로 선택하고 해당 색상을 해당 그룹의 각 노드에 적용합니다. 당신이 공동으로 각 노드의 그룹을 결정 데이터에서 두 개의 변수가있는 경우

library(networkD3) 

links <- read.table(header = T, text = " 
source target value 
0  1  1 
1  2  1 
2  0  1 
0  3  1 
3  4  1 
4  5  1 
5  3  1 
") 

nodes <- read.table(header = T, text = " 
name group 
zero 1 
one  1 
two  1 
three 2 
four 2 
five 2 
") 

forceNetwork(Links = links, Nodes = nodes, 
      Source = "source", Target = "target", Value = "value", 
      NodeID = "name", Group = "group", 
      colourScale = JS("d3.scaleOrdinal(d3.schemeCategory10);")) 

, 당신은

nodes <- read.table(header = T, text = " 
name group1 group2 
zero A  D 
one  B  E 
two  C  F 
three A  E 
four B  F 
five C  D 
") 

nodes$group <- paste(nodes$group1, nodes$group2, sep = "_") 

forceNetwork(Links = links, Nodes = nodes, 
      Source = "source", Target = "target", Value = "value", 
      NodeID = "name", Group = "group", 
      colourScale = JS("d3.scaleOrdinal(d3.schemeCategory10);")) 
+0

그래 ... forceNetwork()로 전달하기 전에 데이터를 결합해야합니다. 나는이 사실을 알고. 하나 이상의 그룹을 가질 수 있습니까? Group = c ("group1", "group2")와 같은 것 – Shudharsanan

+0

내 그룹에는 "1"그룹과 "2"그룹의 두 그룹이 있습니다. –

+0

나는 내 대답에 그룹 매개 변수에 대한 설명을 분명히했다. 어쩌면 혼란을 야기했을지도 모른다. –