我想使用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"];
}
答案 0 :(得分: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"];
}
产量