2017-05-26 9 views
1

私は、ノードの1つと同じ色のエッジを持つ2つのネットワークをプロットしようとしています。
たとえば、ムービー/俳優の2部グラフを例として7つのムービーと15人の俳優があり、それぞれの俳優は国籍を持っています。
私は、俳優の国籍と同じ色の俳優と映画の間に縁を持っていたいです。色の選択ggraph R

NG1 <- 7 
NG2 <- 15 
Nat <- sample(x = c("French", "English", "Italian", "American", "Chinese"), size = NG2, replace = T) 
G <- graph.empty(NG1+NG2) 

[ここで、head(Nat)戻り"Italian" "English" "American" "French" "French" "French"]
edgelist作成するコード:[ここで、head(EL)戻り1 14 3 13 2 15]

E1 <- sample(x=1:NG1, size = 30, replace = T) 
E2 <- sample(x=(NG1+1):(NG1+NG2), size = 30, replace = T) 
EL <- c(rbind(E1, E2)) 
G <- add_edges(G, EL, nat = Nat[E2-NG1]) 


異なるAES引数:

GROUP <- c(rep("Movie", NG1), rep("Act", NG2)) 
COL <- c(rep("Movie", NG1), Nat) 
TXT <- c(as.character(1:NG1), letters[1:NG2]) 

そして今、ggraph i nstructions:

ggraph(G, layout = 'kk') + 
     geom_node_point(aes(col = COL, shape = GROUP, size = 7)) + 
     geom_edge_link(aes(col = nat)) + 
     geom_node_text(aes(label = TXT), size = 4) 

Plot

あなたが底に見ることができるように、ITALIENある俳優aは、青色のノードを持っていますが、映画7とピンクの縁に接続されている...どのように私は指定することができますノード(ここでは6色)とエッジ(ノードの最初の5色)のカラーパレットですか?

私が明確にしたことを希望します。

答えて

1

2時間後、私はついに解決策を見つけました!

私はgg_color_hueノードに使用される6色をエミュレートするhereを定義関数を使用した後:

+ scale_edge_colour_manual(values = cols[1:5])