2

forcenetwork で、ネットワーク内のノードに色を付けるグループとカラースケールを見つけました。2 つの異なるグループが必要です (2 つの異なる変数間のユーザー入力に基づいてノードに色が適用されます)。持つことは可能ですか?はいの場合、どのように?

フォースネットワーク - https://www.rdocumentation.org/packages/networkD3/versions/0.4/topics/forceNetwork

あらゆる種類のヘルプが役立ちます。ありがとう!

4

1 に答える 1

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);"))

データ内に、各ノードのグループを共同で決定する 2 つの個別の変数がある場合は、それらをforceNetwork()...に渡す前に、それらをデータ内で結合する必要があります。

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);"))
于 2017-09-19T12:11:05.970 に答える