2011-12-22 10 views
5

私はここで行われたような特定のグラフ(対称順列グループのCayleyグラフ)を視覚化しようとしていますが、Graphviz 2.28ではDotを使用しています。以前のものと比べて、かなり巨大なグラフであるcayleyドット言語を使用してGraphvizで有向グラフを圧縮する

cayley http://www.euclideanspace.com/maths/discrete/groups/categorise/finite/cube/cayleyGraph.png

digraph cayley { 
    i -> x [color=red]; 
    i -> y [color=blue]; 
    x -> xx [color=red]; 
    x -> xy [color=blue]; 
    y -> yx [color=red]; 
    y -> yy [color=blue]; 
    xx -> xxx [color=red]; 
    xx -> xxy [color=blue]; 
    xy -> xyx [color=red]; 
    xy -> xyy [color=blue]; 
    yx -> yxx [color=red]; 
    yx -> xyx [color=blue]; 
    yy -> yyx [color=red]; 
    yy -> yyy [color=blue]; 
    xxx -> i [color=red]; 
    xxx -> xxxy [color=blue]; 
    xxy -> xxyx [color=red]; 
    xxy -> xxyy [color=blue]; 
    xyx -> xyxx [color=red]; 
    xyx -> xxyx [color=blue]; 
    xyy -> yy [color=red]; 
    xyy -> xyyy [color=blue]; 
    yxx -> yxxx [color=red]; 
    yxx -> xx [color=blue]; 
    yyx -> xxyy [color=red]; 
    yyx -> xyxx [color=blue]; 
    yyy -> yyyx [color=red]; 
    yyy -> i [color=blue]; 
    xxxy -> xxxyx [color=red]; 
    xxxy -> yyx [color=blue]; 
    xxyx -> yyy [color=red]; 
    xxyx -> xxxyx [color=blue]; 
    xxyy -> xyy [color=red]; 
    xxyy -> yxx [color=blue]; 
    xyxx -> xyxxx [color=red]; 
    xyxx -> xxx [color=blue]; 
    xyyy -> xyyyx [color=red]; 
    xyyy -> x [color=blue]; 
    yxxx -> y [color=red]; 
    yxxx -> xyyyx [color=blue]; 
    yyyx -> xxy [color=red]; 
    yyyx -> xyxxx [color=blue]; 
    xxxyx -> xyyy [color=red]; 
    xxxyx -> yx [color=blue]; 
    xyxxx -> xy [color=red]; 
    xyxxx -> yxxx [color=blue]; 
    xyyyx -> xxxy [color=red]; 
    xyyyx -> yyyx [color=blue]; 
} 

私のドットは、以下のレイアウトを生成します。できるだけ近くにグラフを圧縮することができるattributeがありますか?

+0

...と私は@dougから[ソリューション](http://stackoverflow.com/questions/3428448/reducing-graph-size-in-graphviz)試したし、それはdoesnのこの場合、仕事はありません。 – MihaiPopescu

答えて

19

グラフ、ノード、エッジのデフォルト属性などのコードを変更して、レイアウトを可能な限りコンパクトにしました。たぶんもっと完璧なアプローチがあります。ちなみに、ノードiは左にありますが、右にはありません。

digraph cayley { 
    graph[rankdir=LR, center=true, margin=0.2, nodesep=0.1, ranksep=0.3] 
    node[shape=circle, fontname="Courier-Bold", fontsize=10, width=0.4, height=0.4, fixedsize=true] 
    edge[arrowsize=0.6, arrowhead=vee] 
    i -> x [color=red]; 
    i -> y [color=blue]; 
    x -> xx [color=red]; 
    x -> xy [color=blue]; 
    y -> yx [color=red]; 
    y -> yy [color=blue]; 
    xx -> xxx [color=red]; 
    xx -> xxy [color=blue]; 
    xy -> xyx [color=red]; 
    xy -> xyy [color=blue]; 
    yx -> yxx [color=red]; 
    yx -> xyx [color=blue]; 
    yy -> yyx [color=red]; 
    yy -> yyy [color=blue]; 
    xxx -> i [color=red]; 
    xxx -> xxxy [color=blue]; 
    xxy -> xxyx [color=red]; 
    xxy -> xxyy [color=blue]; 
    xyx -> xyxx [color=red]; 
    xyx -> xxyx [color=blue]; 
    xyy -> yy [color=red]; 
    xyy -> xyyy [color=blue]; 
    yxx -> yxxx [color=red]; 
    yxx -> xx [color=blue]; 
    yyx -> xxyy [color=red]; 
    yyx -> xyxx [color=blue]; 
    yyy -> yyyx [color=red]; 
    yyy -> i [color=blue]; 
    xxxy -> xxxyx [color=red]; 
    xxxy -> yyx [color=blue]; 
    xxyx -> yyy [color=red]; 
    xxyx -> xxxyx [color=blue]; 
    xxyy -> xyy [color=red]; 
    xxyy -> yxx [color=blue]; 
    xyxx -> xyxxx [color=red]; 
    xyxx -> xxx [color=blue]; 
    xyyy -> xyyyx [color=red]; 
    xyyy -> x [color=blue]; 
    yxxx -> y [color=red]; 
    yxxx -> xyyyx [color=blue]; 
    yyyx -> xxy [color=red]; 
    yyyx -> xyxxx [color=blue]; 
    xxxyx -> xyyy [color=red]; 
    xxxyx -> yx [color=blue]; 
    xyxxx -> xy [color=red]; 
    xyxxx -> yxxx [color=blue]; 
    xyyyx -> xxxy [color=red]; 
    xyyyx -> yyyx [color=blue]; 
    { rank=same; x; y } 
    { rank=same; xx; xy; yx; yy } 
    { rank=same; xxx; xxy; xyx; xyy; yxx; yyx; yyy } 
    { rank=same; xxxy; xxyx; xxyy; xyxx; xyyy; yxxx; yyyx } 
    { rank=same; xxxyx; xyxxx; xyyyx } 
} 

画像は以下の通りです。

enter image description here

+0

恐ろしい!ありがとう! – MihaiPopescu

関連する問題