这是我的树:
\begin{figure}[H]
\centering
\begin{tikzpicture}[
grow=right,
edge from parent/.style={draw, -latex},
level distance=20mm,
sibling distance=15mm,
]
\node[state, thickgray]{1}
child[thickgray]{
node[state, thickgray]{2}
child{node[state]{3}}
}
child[thickgray]{node[state, thickgray]{4}}
child{
node[state, thickred]{5}
child[thickred]{node[state, thickred]{6}}
child{node[state]{7}}
};
\end{tikzpicture}
\end{figure}
目前看起来像:
我想将 1 到 5 的分支涂成红色thickred
,但如果我将这样的参数放在child{}
包含它的上,则 1 到 5 和 5 到 7 都涂成红色。我该如何隔离 1 到 5(最好同时保持这种构建树的方式,我\tree
现在想避免这种情况)。
答案1
首先需要将根节点node
和第一个child
应被涂成红色的节点设置为thickred
。然后(因为这种树状设置中的样式是由子节点继承的),在层次结构的较低位置,将第一个child
应被涂成灰色的节点重新设置为thickgray
或重置其样式(通过使用默认值覆盖它):
\documentclass[border=1mm, tikz]{standalone}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[
grow=right,
edge from parent/.style={draw, -latex},
level distance=20mm,
sibling distance=15mm,
state/.style={circle, draw},
thickgray/.style={thick, gray},
thickred/.style={thick, red},
reset/.style={thin, black}
]
\node[state, thickred]{1}
child[thickgray]{
node[state]{2}
child{node[state]{3}}
}
child[thickgray]{node[state]{4}}
child[thickred]{
node[state]{5}
child[reset]{node[state]{6}}
child[reset]{node[state]{7}}
};
\end{tikzpicture}
\end{document}