2017-01-12 17 views
0

私はプログラミングには新しく、Rにはまったく新しいです。重み付きノードを強調する方法を理解するのは苦労しています。私は同様に、例えば、データ・フレームを有する:最初の列の他のものは一つだけに接続しながらrの加重ノードを強調表示する方法は?

a b 
a c 
a d 
e f 
g h 
i j 

ので、3つの事に接続します。どのようにしてこれをグラフ化して、アルゴリズム的に "a"がより高い重みを持ち、それをハイライト表示するようにします。

これは私の最初の質問ですので、フォーマットを許してください。前もって感謝します!

+0

あなたはグラフデータ構造を構築し、プロットするため 'igraph'パッケージを使用することがありますか? – Spacedman

+0

"アルゴリズム的に"; "ハイライト" =>定義してください – hrbrmstr

答えて

1

ここでは多くの可能な重み付けスキームのうち1(degree)を使用した例です:

df <- read.table(text="a b 
a c 
a d 
e f 
g h 
i j") 
library(igraph) 
g <- graph_from_data_frame(df) 
coords <- layout.auto(g) 
# "weight" nodes by number of edges and rescale values from 10 to 20: 
V(g)$size <- plotrix::rescale(degree(g), c(10, 20)) 
plot(g, layout=coords, vertex.size=V(g)$size) 
0

あなたは(変更色相いくつかの色合いのパレットを使用するか、アルファ値を上げる)に明るい色を使用することができ、ここで1があります例:

df <- read.table(text="a b 
       a c 
       a d 
       e f 
       g h 
       i j", header=FALSE) 
library(igraph) 
g <- graph_from_data_frame(df) 
deg <- 1 + degree(g, mode='out') 
plot(g, vertex.size=10*deg, 
    vertex.color=colorRampPalette(c('grey','green'))(max(deg))[deg]) 

enter image description here

関連する問題