모든 사람이 아닌 나무의 마지막 수준(잎)만 원으로 표시하려면 어떻게 해야 합니까?
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{graphdrawing}
\usetikzlibrary{graphs}
\usegdlibrary{trees}
\begin{document}
\tikzset{ every node/.style={circle, draw, fill=gray!10,, minimum size=0.75cm} }
\begin{tikzpicture}[>=stealth]
\graph [tree layout, grow=down, fresh nodes, level distance=0.5in, sibling distance=0.5in]
{
200 -> {
5 -> { 2, 2.5 },
40 -> { 5 -> {2, 2.5 }, 8->{2,4} }
}
};
\end{tikzpicture}
\end{document}
답변1
에 스타일을 적용하는 대신 선택한 노드에만 적용되는 every node
새 스타일을 만듭니다 .circnode
또는 forest
이것이 정말 쉬운 곳에서 사용하는 것을 고려할 수 있습니다.
\RequirePackage{luatex85}
\documentclass[tikz,border=10pt]{standalone}
\usepackage{forest}
\usetikzlibrary{graphdrawing}
\usetikzlibrary{graphs}
\usegdlibrary{trees}
\begin{document}
\tikzset{ circnode/.style={circle, draw, fill=gray!10,, minimum size=0.75cm} }
\begin{tikzpicture}[>=stealth]
\graph [tree layout, grow=down, fresh nodes, level distance=0.5in, sibling distance=0.5in]
{
200 -> {
5 -> { 2 [circnode], 2.5 [circnode]},
40 -> { 5 -> {2[circnode], 2.5[circnode] }, 8->{2[circnode],4[circnode]} }
}
};
\end{tikzpicture}
\begin{forest}
for tree={l=0.5in,s sep=5mm,edge={-stealth}},
where n children=0{circnode}{}
[200
[5
[2][2.5]
]
[40
[5
[2][2.5]
]
[8
[2][4]
]
]
]
\end{forest}
\end{document}
답변2
나는 또한 Torbjorn, T.를 읽기 전에 우연히 이 해결책을 발견했습니다.
\tikzstyle{leaves}=[circle, draw, fill=gray!10, minimum size=0.75cm]
\begin{tikzpicture}[>=stealth]
\graph [tree layout, grow=down, fresh nodes, level distance=0.5in, sibling distance=0.5in]
{
200 -> {
5 -> { 2[leaves], 2.5[leaves] },
40 -> { 5 -> {2[leaves], 2.5[leaves] }, 8-> {2[leaves],4[leaves]} }
}
};
\end{tikzpicture}