2017-09-19 5 views
1

forcenetworkでは、グループとcolourscaleがネットワーク内のノードに色付けされています。私は2つの異なるグループ(2つの異なる変数の間のユーザ入力に基づいてノードに色が適用される)を持っていたいと思います。それは可能ですか?はいの場合、どうですか?ColourScale ForceNetwork(NetworkD3)in R Shiny

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

ヘルプのあらゆる種類のが有用であろう。 ありがとう!

答えて

1

colourScaleパラメータはカラーパレットを決定し、groupパラメータは、各ノードのグループを区別する値を含むノードデータフレーム内のベクトルの名前を決定します。 networkD3は、データの異なるグループごとにカラーパレットから一意の色を自動的に選択し、その色をそのグループの各ノードに適用します。あなたは共同で、各ノードのグループを決定してデータに2つの別々の変数を持っている場合は

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"の2つのグループがあります。 –

+0

私は私の答えでグループパラメータの説明を明らかにしました...多分それは混乱を引き起こしていたでしょうか? –

関連する問題