【问题标题】:Graphviz, order of nodes in left-to-right digraph (Markov chain)Graphviz,从左到右有向图中的节点顺序(马尔可夫链)
【发布时间】:2016-07-10 14:47:14
【问题描述】:

我想使用 graphviz 制作一个简单的马尔可夫链图。下面是我使用的代码和得到的图表。

如何使所有节点以与.dot 文件中相同的顺序位于水平轴上?显然源文件中节点的顺序并不能解决问题。

(很高兴) 我怎样才能使 2 和 3、3 和 4 以及 4 和 5 之间的边缘关于节点所在的水平轴对称?您可以看到 p 边是直的,而 q 是弯曲的。我希望它们都弯曲。

digraph {
    rankdir=LR;
    node [shape = circle];

    1
    2
    3
    4
    5
    6

    1 -> 1[label="1"];

    2 -> 1[label="q"];
    2 -> 3[label="p"];

    3 -> 2[label="q"];
    3 -> 4[label="p"];

    4 -> 3[label="q"];
    4 -> 5[label="p"];

    5 -> 4[label="q"];
    5 -> 6[label="p"];

    6 -> 6[label="1"];
}

【问题讨论】:

    标签: graph graphviz markov-chains


    【解决方案1】:

    最重要的一步是确保所有节点都在同一等级:

    digraph 
    {
        rankdir=TB;
        node [ shape = circle ];
        { rank = same; 1 2 3 4 5 6 }
    
        2 -> 3[label="p"];
        3 -> 4[label="p"];
        4 -> 5[label="p"];
        5 -> 6[label="p"];
        6:ne -> 6:nw[label="1"];
    
        edge[ dir = back ];
        1:ne -> 1:nw[label="1"];
        1 -> 2[ label="q"];
        2 -> 3[label="q"];
        3 -> 4[label="q"];
        4 -> 5[label="q"];
    }
    

    产量

    【讨论】:

      猜你喜欢
      • 2015-07-04
      • 2016-11-24
      • 2020-03-11
      • 2018-08-08
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多