2016-10-26 29 views
6

Tôi đã cố gắng để làm một cái gì đó như thế này sử dụng Graphviz:cố gắng để tạo ra đồ thị con xếp hạng trong graphviz

x y z 
    | | | 
    # | | 
    a#__\| | 
    # /#b | 
    # #__\| 
    # # /#c 
    # d#/__# 
    # #\ x 
    # # | 
    e#/__# | 
    #\ # | 

Nhưng xếp hạng dường như không được làm việc như tôi mong đợi. Tôi muốn e nằm dưới tất cả các nút khác.

digraph x 
{ 
    rankdir = tb; 
    size = "7.5, 7.5"; 
    rank = source; 
    a -> b -> c -> d -> e; 
    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    label="x"; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    label="y"; 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    label="z"; 
    c; 
    } 
} 

First attempt

Tôi đã cố gắng sử dụng clusterrank = global mà loại công trình, nhưng sau đó các đồ thị con không được tách ra thành một cột rõ ràng hơn và có sự chồng chéo trên các cột. Nó cũng không đi đúng như tôi muốn. Những hình ảnh sau đây nêu bật một trong những chồng chéo màu đỏ, nhưng khi bạn có thể thấy có 4.

2nd attempt

digraph x 
{ 
    rankdir = tb; 
    rankstep=equally; 
    clusterrank = global; 
    size = "7.5, 7.5"; 
    a -> b -> c -> d -> e; 
    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    label="x"; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    label="y"; 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    label="z"; 
    c; 
    } 
} 

tôi đã cố gắng để tạo ra một cụm riêng biệt có nghĩa là sẽ có một hàng đầu đảm bảo xếp hạng dưới cùng và sau đó xếp hạng các cụm phù hợp với nhau, nhưng nó cũng giống như nỗ lực trước đó, loại bỏ các hộp thấy nỗ lực đầu tiên và gây ra sự chồng chéo không mong muốn.

digraph x 
{ 
    rankdir = tb; 
    1 -> 2 -> 3 -> 4 -> 5; 
    a -> b -> c -> d -> e; 
    { rank=same; 1; a; } 
    { rank=same; 2; b; } 
    { rank=same; 3; c; } 
    { rank=same; 4; d; } 
    { rank=same; 5; e; } 

    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    label="x"; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    label="y"; 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    label="z"; 
    c; 
    } 
} 

3rd attempt

Bất cứ ai có bất cứ ý tưởng như để thử và nhận bố trí mà tôi muốn?

Là một lưu ý phụ, tôi đã cố gắng đăng nhập vào diễn đàn Graphviz về vấn đề này, nhưng thấy rằng việc đăng nhập từ this page dường như không hoạt động. Tôi tiếp tục nhận được một vấn đề thời gian chờ lâu. Tôi kiểm tra tài khoản email của mình và không có gì ở đó. Tôi thử tạo một tài khoản mới với cùng một email và nó nói rằng tài khoản đã được sử dụng. Sau đó tôi thử và yêu cầu họ đặt lại mật khẩu của tôi và tôi gặp phải một vấn đề thời gian chờ khác.

Có ai biết tôi có thể liên hệ với ai để thử và khắc phục sự cố đăng nhập gây phiền nhiễu đó không? Có thể ai đó đã đăng nhập có thể đăng bài đó cho tôi?

Trả lời

0

Chạy chấm bằng -Gnewrank. Điều đó sẽ giúp bạn có được những gì bạn muốn dựa trên bản phác thảo của bạn. Nếu cần thêm nhiều chỉnh sửa, vui lòng nêu rõ bạn đang làm gì.

0

giải pháp cuối cùng bạn sẽ làm việc ngay sau khi bạn làm một điều chỉnh nhỏ

Sử dụng newrank=true để tránh các cụm "Đập hộp"

Chơi với splines=... để điều chỉnh mũi tên

Xác định nhãn như các nút riêng biệt.

digraph x 
{ 
    rankdir = tb; 
    newrank=true; 
    splines=ortho; 

    0 -> 1 -> 2 -> 3 -> 4 -> 5; 
    X; Y; Z; 
    a -> b -> c -> d -> e; 
    { rank=same; 0 X Y Z} 
    { rank=same; 1; a; } 
    { rank=same; 2; b; } 
    { rank=same; 3; c; } 
    { rank=same; 4; d; } 
    { rank=same; 5; e; } 

    subgraph "cluster x" 
    { 
    style=filled; 
    color=lightgrey; 
    a -> e [style=invis]; 
    } 
    subgraph "cluster y" 
    { 
    b -> d [style=invis]; 
    } 
    subgraph "cluster z" 
    { 
    c; 
    } 
} 

enter image description here

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