使用 Tikz 绘制简单图形图案

使用 Tikz 绘制简单图形图案

我已经使用 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}

您能帮我改善这个结果吗?

谢谢。

Graph pattern

答案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}

enter image description here

答案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}

enter image description here

答案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}

enter image description here

相关内容