我想绘制一个图形,其中的节点为矩形,节点内需要包含一些文本,并且一些节点甚至需要填充我选择的特定颜色。除此之外,我还希望在边缘开始处添加一些小文本,如下图所示。
正如我所说,节点是矩形的。我尝试了类似下面的方法,但它甚至没有显示任何内容。有什么想法可以实现我想要的东西吗?
\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
。