2011-12-22 20 views
5

Tôi đang cố gắng để hiển thị trực quan một biểu đồ cụ thể (biểu đồ Cayley của nhóm hoán vị đối xứng) bằng cách sử dụng Graphviz 2.28 với Dot.Nén một biểu đồ trong Graphviz bằng cách sử dụng Dot Language

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]; 
} 

My Dot tạo ra cách bố trí như sau: cayley mà là một đồ thị khá lớn so với trước đó. Có bất kỳ attribute nào có thể thu gọn biểu đồ càng gần biểu đồ đầu tiên càng tốt không?

+0

... và tôi đã cố gắng [giải pháp] (http://stackoverflow.com/questions/3428448/reducing-graph-size-in-graphviz) từ @doug và nó doesn' t làm việc trong trường hợp này. – MihaiPopescu

Trả lời

19

Tôi đã sửa đổi các mã như thuộc tính mặc định của biểu đồ, nút và cạnh để làm bố cục càng gọn càng tốt. Có lẽ có một cách tiếp cận hoàn hảo hơn. Nhân tiện, nút i nằm ở bên trái nhưng không đúng.

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 } 
} 

Hình ảnh được hiển thị như sau.

enter image description here

+0

Tuyệt vời! Cảm ơn! – MihaiPopescu

Các vấn đề liên quan