トップページ -> 実践知識 -> R を用いた統計処理/データマイニング -> R で有向グラフ,無向グラフの描画
[サイトマップへ], サイト内検索:

R で有向グラフ,無向グラフの描画

サイト構成 連絡先,業績など 実践知識 データの扱い コンピュータ 教材 サポートページ

この Web ページでは, R で graphviz パッケージを用いて、有向グラフ,無向グラフの描画を行う.

準備


有向グラフと無向グラフの例

library("Rgraphviz")
r <- new("graphNEL", nodes=c("A", "B", "C"), edgemode="directed")
r <- addEdge(from="A", to="B", r, weights=1)
r <- addEdge(from="B", to="A", r, weights=1)
plot(r)

library("Rgraphviz")
r <- new("graphNEL", nodes=c("A", "B", "C"), edgemode="undirected")
r <- addEdge("A", "B", r, weights=1)
r <- addEdge("B", "C", r, weights=1)
plot(r)


属性の取得

  1. 前準備

    library("Rgraphviz")
    r <- new("graphNEL", nodes=c("A", "B", "C"), edgemode="directed")
    r <- addEdge(from="A", to="B", r, weights=1)
    r <- addEdge(from="B", to="A", r, weights=1)
    

  2. グラフの構造情報

    class(r)
    str(r)
    r@nodes
    r@edgeL
    

    nodes(r)
    edges(r) 
    

  3. ノード数、エッジ数

    numNodes(r)
    numEdges(r)
    

  4. ノード属性
    1. ノード属性として設定したい値を格納した変数 labels を次のように作る.グラフ r のノード数は 3 だったので,labels の長さは 3 にする.

      labels <- c("hoge", "hoge2", "hoge3")
      names(labels) <- nodes(r)
      

    2. 設定用のリストを作り,変数 labels の値を転記する

      nattrs <- list() 
      nattrs$label <- labels
      

    3. plot() のパラメータに、描画したいグラフ r と設定用のリストを含める

      plot(r, nodeAttrs=nattrs)
      

      R
      library("Rgraphviz")
      r <- new("graphNEL", nodes=c("A", "B", "C", "D"), edgemode="directed")
      r <- addEdge(from="A", to="B", r)
      r <- addEdge(from="B", to="C", r)
      r <- addEdge(from="C", to="D", r)
      r <- addEdge(from="D", to="B", r)
      pos <- character(numNodes(r))
      pos <- c("1,1!", "5,5!", "1,8!", "9,3!")
      names(pos) <- nodes(r)
      pins <- character(numNodes(r))
      pins[1:numNodes(r)] <- "TRUE"
      names(pins) <- nodes(r)
      nattrs <- list() 
      nattrs$pos <- pos
      nattrs$pin <- pins
      plot(r, "neato", nodeAttrs=nattrs)
      plot( agopen(r, name="foo", nodeAttrs=nattrs, layout=FALSE, layoutType="fdp") )