如何绘制带有矩形节点的图形?

如何绘制带有矩形节点的图形?

我想绘制一个图形,其中的节点为矩形,节点内需要包含一些文本,并且一些节点甚至需要填充我选择的特定颜色。除此之外,我还希望在边缘开始处添加一些小文本,如下图所示。

在此处输入图片描述

正如我所说,节点是矩形的。我尝试了类似下面的方法,但它甚至没有显示任何内容。有什么想法可以实现我想要的东西吗?

\usepackage{tikz}
\usetikzlibrary{shapes}

\begin{document}

\begin{figure}[H]
    \begin{tikzpicture}[auto,node distance=5 cm, scale=1, transform shape]

    \node[rectangle] (1) {1};
    \node[rectangle] (2) {2};
    \node[rectangle] (3) {3};

    \path[->] (1) edge [left]  node (2)
              (1) edge [right] node (3);
    \end{tikzpicture}
\end{figure}

\end{document}

答案1

在此处输入图片描述

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{positioning, quotes}

\begin{document}
    \begin{tikzpicture}[
    node distance = 12mm and 6mm,
       box/.style = {rectangle, draw, fill=#1, 
                     minimum width=12mm, minimum height=7mm}
                        ]
\node (n1) [box=blue!10] {1};
\node (n2) [box=white,below  left=of n1] {2};
\node (n3) [box=white,below right=of n1] {3};
%
\draw[->] (n1) to ["some text" '] (n2);
\draw[->] (n1) to ["some text"  ] (n3);
    \end{tikzpicture}
\end{document}

编辑: 根据您的评论,看看以下解决方案是否是您想要的:

在此处输入图片描述

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{backgrounds, scopes, positioning}

\begin{document}
    \begin{tikzpicture}[
     node distance = 12mm and 6mm,
every label/.style = {label distance=3pt, fill=white, inner sep=1pt},
        box/.style = {rectangle, draw, fill=#1,
                     minimum width=12mm, minimum height=7mm}
                        ]
\node (n1) [box=blue!10, label=below:some text] {1};
\node (n2) [box=white,below  left=of n1] {2};
\node (n3) [box=white,below right=of n1] {3};
%
\scoped[on background layer]
    \draw[->]   (n1) edge   (n2)    (n1) to     (n3);
    \end{tikzpicture}
\end{document}

从评论中可以得出结论,您实际上喜欢绘制节点树。 在这种情况下,您应该考虑不同的方法,其中最好的方法可能是使用包forest

相关内容