mathematicaで有向グラフ作図

| コメント(0) | トラックバック(0)
かなりツールの無駄遣いだけど、あるのだから使ってみる。

LayeredGraphPlot[
 {
  {Out -> Out, "25-35"},
  {Out -> Off, "<25"},
  {Out -> 30, "25-35*"},
  {Out -> 27, ">35"},
  {Off -> Out, "25-32"},
  {Off -> Off, "<25"},
  {Off -> 30, "25-32*"},
  {Off -> 27, ">35"},
  {30 -> Out, "25-32"},
  {30 -> Off, "<25"},
  {30 -> 30, "25-32*"},
  {30 -> 27, ">35"},
  {27 -> Out, "25-32"},
  {27 -> Off, "<25"},
  {27 -> 30, "25-32"},
  {27 -> 27, ">32"}
  },
 EdgeRenderingFunction -> ({Text[#3, LineScaledCoordinate[#1, 0.6], 
      Background -> White], 
     If[#3 === ">35", Red, If[#3 === "<25", Blue, Black]], 
     Arrow[#1, 0.1]} &),
 VertexLabeling -> True]

描画オプションは、リストでヒントだけ作っておいて、後でEdgeRenderingFunctionで操作すると便利。
LineScaledCoordinateで0.5(50%の位置)にすると、双方向で重なるので、少しずらすと良い。
#2から対象となっているリストの要素が頭から取れる。
#1にはエッジ描画のマトリクスが入っている。

トラックバック(0)

トラックバックURL: http://www.icefree.org/mt/mt-tb.cgi/37

コメントする

このブログ記事について

このページは、vvpが2011年11月 5日 17:21に書いたブログ記事です。

ひとつ前のブログ記事は「ARM9でlog計算」です。

次のブログ記事は「温度センサのメモ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。