
\documentclass[tikz,border=10pt]{standalone}
\usepackage{pgfplots}
\usepackage{forest}
\usetikzlibrary{shadows}
\begin{document}
\begin{forest}
shade me/.style={%
bottom color=#1!25,
top color=#1!5,
draw=#1,
drop shadow,
font=\Huge,
},
my label/.style n args=2{%
edge label={node [midway, black, font=\sffamily\large, #1] {#2}}
},
where n children=0{%
shade me=green!95!gray,
}{%
if level=0{%
shade me=green!95!gray,
}{%
shade me=green!95!gray,
}
},
for tree={%
delay={content/.wrap value={\strut #1}},
edge={red,->},
l sep+=45pt,
s sep+=60pt
}
[100000 individuals
[100 affected, my label={above, xshift=1cm}{}
[{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}
答え1
解決策の作業を開始する前に、質問に対応できるようにするために、MWE をさまざまな方法で変更する必要があったことに注意してください。
質問が本質的に特定のクラスに関するものである場合、適切なMWEはそのクラスを使用する必要があります。この場合、最初に必要な変更は、使用
beamer
beamer
そうでなければ、増分検出を実装しようとしても意味がありません。(おそらく、のオプションを試すこともできますstandalone
が、MWE ではそれが使用されていません。)2番目に明らかに必要な変更は、考えるファンシーオーバーレイの仕様については、そのままではビーマースライドにはまったく適していないので、ツリーの仕様を修正する必要があります。巨大な。
ツリーのコードの大部分はまったく使用されていないため、例から削除するだけで済みます。エッジ ラベルがないことは、空のラベルがあるよりも、この目的には適しています (おそらく、より適しています)。
それが終わったら、私が使用している方法に基づいた解決策を示します。この解決策は、コード内に記載されているさまざまな著者、特に Qrrbrbirlbel に多大な恩恵を受けています。
\begin{filecontents}{mytree.tex}
\documentclass[tikz,border=10pt,multi]{standalone}
\usepackage{forest}
\usetikzlibrary{shadows}
\begin{document}
\begin{forest}
shade me/.style={%
bottom color=#1!25,
top color=#1!5,
draw=#1,
},
where n children=0{%
shade me=green!95!gray,
}{%
if level=0{%
shade me=green!95!gray,
}{%
shade me=green!95!gray,
}
},
for tree={%
delay={content/.wrap value={\strut #1}},
edge={red,->},
l sep+=20pt,
s sep+=20pt,
from slide/.wrap pgfmath arg={#1}{int(level()+1)},
},
delay={%
for tree={%
visible on=<\forestoption{from slide}->,
alt=<\forestoption{from slide}->{drop shadow}{},
}
}
[100000 individuals
[100 affected
[{95\% true positives}
[,phantom
]
[{95 + 999 test positive, Total = 1094}, name=aux1
]
]
]
[99900 unaffected
[{1\% false positives}, tikz+={\scoped[visible on=<4>]{\draw [red, ->] () -- (aux1);}}
]
]
]
\end{forest}
\end{document}
\end{filecontents}
\documentclass{beamer}
\usepackage{forest,standalone}
\usetikzlibrary{shadows}
\tikzset{% set up for transitions using tikz with beamer overlays - developed by Daniel (http://tex.stackexchange.com/a/55849/) and, in ear lier form, by Matthew Leingang (http://tex.stackexchange.com/a/6155/) and modified for this use, I think by Qrrbrbirlbel (http://tex.stacke xchange.com/a/112471/)
invisible/.style={opacity=0,text opacity=0},
visible on/.style={alt=#1{}{invisible}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path
},
}
\forestset{%
visible on/.style={% developed by Qrrbrbirlbel (http://tex.stackexchange.com/a/112471/)
for tree={%
/tikz/visible on={#1},
edge={/tikz/visible on={#1}}}},
% based on Qrrbrbirlbel's answer at http://tex.stackexchange.com/a/112895/
declare toks={from slide}{1},
}
\begin{document}
\begin{frame}
\centering
\input{mytree}
\end{frame}
\end{document}