![Как изменить лесное дерево?](https://rvso.com/image/335476/%D0%9A%D0%B0%D0%BA%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%20%D0%BB%D0%B5%D1%81%D0%BD%D0%BE%D0%B5%20%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%3F.png)
%Мне нужно сделать так, чтобы самый последний уровень был общим для двух верхних уровней. Как это закодировать?
\documentclass[tikz,border=10pt]{standalone}
\usepackage{forest}
\usetikzlibrary{shadows}
\begin{document}
\begin{forest}
shade me/.style={%
bottom color=#1!25,
top color=#1!5,
draw=#1,
drop shadow,
font=\large,
},
my label/.style n args=2{%
edge label={node [midway, black, font=\sffamily\large, #1] {#2}}
},
where n children=0{%
shade me=blue!50!cyan,
}{%
if level=0{%
shade me=green!75!gray,
}{%
shade me=blue!75!magenta,
}
},
for tree={%
delay={content/.wrap value={\strut #1}},
edge={red,->},
l sep+=25pt,
s sep+=20pt
}
[100000 individuals
[100 affected, my label={above, xshift=1cm}{}
%[No, my label={above, sloped}{$< 30$}]
[{95\% true positives}, my label={below, xshift=-1.7cm}{}
[{95 + 999 test positive Total = 1094}, my label={above, sloped}{}]]]
[99900 unaffected, my label={above, sloped}{}
[{1\% false positives}, my label={below, xshift=1.5cm}{}
[{95 + 999 test positive Total = 1094}, my label={above, sloped}{}]]] ]
]
]
\end{forest}
\end{document}
решение1
Ребенок phantom
может помочь центрировать узел.
\documentclass[tikz,border=10pt]{standalone}
\usepackage{forest}
\usetikzlibrary{shadows}
\begin{document}
\begin{forest}
shade me/.style={%
bottom color=#1!25,
top color=#1!5,
draw=#1,
drop shadow,
font=\large,
},
my label/.style n args=2{%
edge label={node [midway, black, font=\sffamily\large, #1] {#2}}
},
where n children=0{%
shade me=blue!50!cyan,
}{%
if level=0{%
shade me=green!75!gray,
}{%
shade me=blue!75!magenta,
}
},
for tree={%
delay={content/.wrap value={\strut #1}},
edge={red,->},
l sep+=25pt,
s sep+=20pt
}
[100000 individuals
[100 affected, my label={above, xshift=1cm}{}
%[No, my label={above, sloped}{$< 30$}]
[{95\% true positives}, my label={below, xshift=-1.7cm}{}
[,phantom] [{95 + 999 test positive Total = 1094}, my label={above, sloped}{}, name=aux1]]]
[99900 unaffected, my label={above, sloped}{}
[{1\% false positives}, my label={below, xshift=1.5cm}{}, name=aux
% [{95 + 999 test positive Total = 1094}, my label={above, sloped}{}]
]] ]
]
]
\draw[red, ->] (aux)--(aux1);
\end{forest}
\end{document}
решение2
До сих пор я это делал (см. ниже), но мне не удалось отцентрировать последний уровень:
\documentclass[tikz,border=10pt]{standalone}
\usepackage{forest}
\usetikzlibrary{shadows, positioning}
\begin{document}
\begin{forest}
shade me/.style={%
bottom color=#1!25,
top color=#1!5,
draw=#1,
drop shadow,
font=\large,
},
my label/.style n args=2{%
edge label={node [midway, black, font=\sffamily\large, #1] {#2}}
},
where n children=0{%
shade me=blue!50!cyan,
}{%
if level=0{%
shade me=green!75!gray,
}{%
shade me=blue!75!magenta,
}
},
for tree={%
delay={content/.wrap value={\strut #1}},
edge={red,->},
l sep+=25pt,
s sep+=20pt
}
[100000 individuals, name=init,
[100 affected, my label={above, xshift=1cm}{}
% [No, my label={above, sloped}{$< 30$}]
[{95\% true positives}, my label={below, xshift=-1.7cm}{}
[{95 + 999 test positive Total = 1094}, name=end, below=(1cm of init), my label={above, sloped}{}]]]
[99900 unaffected, my label={above, sloped}{}
[{1\% false positives}, name=start,my label={below, xshift=1.5cm}{}
% [{95 + 999 test positive Total = 1094}, my label={above, sloped}{}]]]
]
]
]
\draw[->, red](start) -- (end);
\end{forest}
\end{document}