blog.monophile.net

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 現在は digitiminimi Inc. において、インフラエンジニアとして生計をたててている。 また、計算を主題に制作を行い、現代音楽作品や公共インスタレーション作品など技術提供を行う。 三輪眞弘に師事する。

List

Rで離散的なグラフを描く

離散構造

ここで言うグラフは頂点と辺からなる離散構造のグラフであって、 一般的な関数の2次元空間への射影ではありません。

そんなグラフを描くのは普通の関数よりも難しくて、 Rでも最初からサポートされているわけではないので、 追加のパッケージigraphを用いて描画します。

準備

installing igraph

Rを起動して以下のコマンドを打ち込むとインストールが始まります。 3分くらいでインストール終わります。

> install.packages("igraph")

test

data

グラフのデータを用意します。

$ wget http://www-personal.umich.edu/~mejn/netdata/karate.zip
$ unzip -o karate.zip

これでカレントディレクトリにkarate.zip,karate.dat,karate.gmlが作られます。

code

karate <- read.graph("karate.gml",format="gml")
plot(karate)

output

描画アルゴリズムを変えてみる

多次元尺度法(MDS)

plot(karate,layout=layout.mds)

plot(karate,layout=layout.circle)

plot(karate,layout=layout.sphere)

Fruchterman Reingold

plot(karate,layout=layout.fruchterman.reingold)

Kamada-Kawai

plot(karate,layout=layout.kamada.kawai)