我已经使用 LaTeX 三年了,但我一直避免使用 Tikz 软件包进行绘图。现在我正在写学位论文,我不得不使用它来获得更好的结果。问题是我现在没有时间开始深入研究。
我需要画出这些简单的图形:一个三角形和一个完全二分图(见下图)。我在网上找到了一个简单三角形图的示例代码,并尝试使用相对定位重新排列节点,但效果不太好。这是我的尝试。
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,
thick,main node/.style={circle,fill=blue!20,draw,minimum size=1cm,inner sep=0pt]}]
\node[main node] (1) {$1$};
\node[main node] (2) [below left of=1] {$2$};
\node[main node] (3) [below right of=1] {$3$};
\path[-]
(1) edge node {} (2)
edge node {} (3)
(2) edge node {} (1)
edge node {} (3)
(3) edge node {} (1)
edge node {} (2);
\end{tikzpicture}
您能帮我改善这个结果吗?
谢谢。
答案1
好吧,我们用“为我做吧!”来回答许多问题,为什么这个不行呢!
这里的 TikZ 黑手党不会原谅那些没有时间学习的人tikz
;)。您从其他地方获得的代码错误地使用了。这是它与库below of
一起使用的方式。positioning
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{positioning}
\tikzset{main node/.style={circle,fill=blue!20,draw,minimum size=1cm,inner sep=0pt},
}
\begin{document}
\begin{tikzpicture}
\node[main node] (1) {$1$};
\node[main node] (2) [below left = 2.3cm and 1.5cm of 1] {$2$};
\node[main node] (3) [below right = 2.3cm and 1.5cm of 1] {$3$};
\path[draw,thick]
(1) edge node {} (2)
(2) edge node {} (3)
(3) edge node {} (1);
%%
\begin{scope}[xshift=4cm]
\node[main node] (1) {$1$};
\node[main node] (2) [right = 2cm of 1] {$2$};
\node[main node] (3) [below = 2cm of 1] {$3$};
\node[main node] (4) [right = 2cm of 3] {$4$};
\path[draw,thick]
(1) edge node {} (2)
(1) edge node {} (4)
(3) edge node {} (2)
(3) edge node {} (4)
;
\end{scope}
\end{tikzpicture}
\end{document}
答案2
如果你问“我没有时间做这个,帮我做吧”这样的问题,你在这里不会很受欢迎。不过,我是个新手,在这里得到了很多帮助。我还是个新手 =)。
带数字的三角形:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[main_node/.style={circle,fill=blue!20,draw,minimum size=1em,inner sep=3pt]}]
\node[main_node] (1) at (0,0) {1};
\node[main_node] (2) at (-1, -1.5) {2};
\node[main_node] (3) at (1, -1.5) {3};
\draw (1) -- (2) -- (3) -- (1);
\end{tikzpicture}
\end{document}
语法非常简单,不言自明:把这些节点放在这里、那里和那里。命令后面的括号\node
是该节点的 ID。然后,您可以使用这些 ID 来绘制连接:用直线将 1 与 2 连接,将 2 与 3 连接,将 3 与 1 连接。
如果你正在寻找更像你放在那里的图像的东西,那么这样做就可以了:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[main_node/.style={circle,fill=blue!60,minimum size=1em,inner sep=3pt]}]
\node[main_node] (1) at (0,0) {};
\node[main_node] (2) at (-1, -1.5) {};
\node[main_node] (3) at (1, -1.5) {};
\draw (1) -- (2) -- (3) -- (1);
\end{tikzpicture}
\end{document}
注意:
- 括号内未提供任何文字
{}
blue!60
意思是“60% 的蓝色”。这就是你的blue!20
颜色更浅的原因。- 我没有画出边框。也许可以通过用与节点相同的颜色绘制边框来改进。
有了这个,其它的图就简单了。
答案3
您可以尝试新的图形绘制库(需要lualatex
):
\documentclass[tikz,border=0.1cm]{standalone}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\tikz\path [graphs/.cd, nodes={shape=circle, fill=blue!40, draw=none, outer sep=0pt}, empty nodes]
graph [tree layout] { A1 -- {B1 -- C1} -- A1 }
[shift=(0:1)]
graph { A2 -- B2; C2 -- D2; A2 -- D2; B2 -- C2 };
\end{document}
答案4
和tkz-graph
\documentclass[11pt]{article}
\usepackage{tkz-graph}
\begin{document}
\SetGraphUnit{4}
\GraphInit[vstyle=Simple]
\SetVertexSimple[MinSize = 16pt, LineColor = blue!60, FillColor = blue!60]
\begin{tikzpicture}[rotate=90]
\Vertices[NoLabel]{circle}{A,B,C}
\Edges(A,B,C,A)
\end{tikzpicture}
\begin{tikzpicture}[rotate=-45]
\GraphInit[vstyle=Simple]
\Vertices{circle}{A,B,C,D}
\Edges(A,C,B,D,A)
\end{tikzpicture}
\end{document}