使用 TikZ 的 graphdrawing 库,是否可以绘制以下图形
采用这种格式吗?
我使用以下代码来“手动”绘制它:
\tikz[nodes={circle, draw}] {
\node (1) at (0,0) {1};
\node (2) at (-1.5,-1.5) {2};
\node (5) at (0, -1.5) {5};
\node (4) at (1.5, -1.5) {4};
\node (3) at (0, -3) {3};
\graph {
(1)--(2)--(3)--(4)--(1); (2)--(5)--(4);
};
}
但是,我必须绘制大量类似的图形,这变得非常繁琐。在我看来,图形绘制库中基于力的布局必须适合实现这种特殊的图形格式(因为它非常“平衡”)。
但是我使用类似的东西没有成功
\tikz \graph [spring layout, nodes={circle, draw}, node distance=1.5cm, horizontal=2 to 4]{
1--2--3--4--1; 2--5--4;
};
并且也不适用于弹簧电气布局。我尝试过调整不同的参数(请参阅 TikZ 手册中的第 32.1 节),但似乎没有任何结果。我甚至无法防止边缘重叠。
我是否误解了 graphdrawing 库的用途?除了手动定义节点的位置之外,有没有更短的方法来以这种自然格式绘制图形?
答案1
答案2
另一种选择是tikz-cd
。
输出
代码
\documentclass[tikz, margin=10pt]{standalone}
\usepackage{tikz-cd} % if tikz is already loaded, you can also use \usetikzlibrary{cd}
\tikzcdset{arrows={thick}}
\begin{document}
\begin{tikzcd}[%
row sep=1cm,
column sep=1cm,
cells={nodes={draw, circle, thick}},
]
& 1 \arrow[dl,-] \arrow[dr,-] & \\
2 \arrow[r,-] \arrow[dr,-] & 5 \arrow[r,-] & 4 \arrow[dl,-]\\
& 3 &
\end{tikzcd}
\end{document}