在 TikZ 中强制水平节点顺序

在 TikZ 中强制水平节点顺序

我在 TikZ 中有一个图表。它可以是平面的,我知道需要做哪些更改才能使它成为平面的,但我不知道如何将其传达给 TikZ。

我希望强制 NTN 节点位于 RvNN 和/或 RNN 节点的左侧。这听起来相当简单。

图形

梅威瑟:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{layered}

\begin{document}
\begin{tikzpicture}[
sibling sep=20mm,level sep=10mm, node distance=10mm
]
\graph[layered layout]{%
NN -> { NTN, RNN, AE };
RvNN -> { RvNTN,RvNTN, RAE};
RNN ->RvNN;
NTN-> RvNTN;
AE->RAE;

};

\end{tikzpicture}
\end{document}

对于我来说,查看许多图表并说出需要进行哪些节点顺序交换以便可以将它们绘制成平面图是相当容易的。

但有几个相关的问题:

这让我觉得这也许非常困难。

我尝试摆弄和edge weightsminimum layers但没有任何进展,而且大多使情况变得更糟。

答案1

向上移动NTN -> RvNTN有助于:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{layered}

\begin{document}
\begin{tikzpicture}[
sibling sep=20mm,level sep=10mm, node distance=10mm
]
\graph[layered layout]{%
NN -> { NTN, RNN, AE };
NTN-> RvNTN;
RvNN -> { RvNTN,RvNTN, RAE};
RNN ->RvNN;
AE->RAE;

};

\end{tikzpicture}
\end{document}

结果

相关内容