鍍金池/ 問答/網(wǎng)絡安全/ graphviz 節(jié)點方向如何控制?

graphviz 節(jié)點方向如何控制?

源代碼如下:

digraph startgame {
    node [fontname="SimHei"];  // 設置節(jié)點屬性,這里設置字體為黑體
    n1[label="TCP Socket" shape=Box];
    n2[label="Data" shape=diamond];
    n3[label="h2\nParse Data" shape=ellipse];
    n4[label="h2\nEvents" shape=diamond];
    n5[label="gethy\nUpdate\nBuffers" shape=ellipse];
    n6[label="gethy\nUParse\nBuffers" shape=ellipse];
    n7[label="gethy\nEvents" shape=diamond];
    n8[label="External\nHandlers" shape=Box];

    rankdir=TB;
    // rankdir=LR;
    
    {
        rank=same;
        n1 -> n2 [arrowhead="none"];
        n2 -> n3;
        n3 -> n4 [arrowhead="none"];
    }
    {
        
        rank=same;
        n5 -> n6;
        n6 -> n7 [arrowhead="none"];
        n7 -> n8;
    }
    n4 -> n5;
}

生成預覽圖片如下:
圖片描述

而我想要的效果是:
圖片描述

請問代碼該怎么修改?

回答
編輯回答
貓館
digraph startgame {
    node [fontname="SimHei"];  // 設置節(jié)點屬性,這里設置字體為黑體
    n1[label="TCP Socket" shape=box];
    n2[label="Data" shape=diamond];
    n3[label="h2\nParse Data" shape=ellipse];
    n4[label="h2\nEvents" shape=diamond];
    n5[label="gethy\nUpdate\nBuffers" shape=ellipse];
    n6[label="gethy\nUParse\nBuffers" shape=ellipse];
    n7[label="gethy\nEvents" shape=diamond];
    n8[label="External\nHandlers" shape=box];

    rankdir=TB;    
    {
        rank=same;
        n1 -> n2 [arrowhead="none"];
        n2 -> n3;
        n3 -> n4 [arrowhead="none"];
    }
    {        
        rank=same;
        n8 -> n7[dir="back"];
        n7 -> n6[arrowhead="none"];
        n6 -> n5[dir="back"];
    }    
    n4 -> n5;
}
2017年6月16日 11:28