我想在我的树中的一些节点下面添加一个进度条。
像这样:
我的树代码如下:
\package{forest}
\begin{document}
\begin{forest}
for tree={calign=fixed edge angles},
[Asp \textsubscript{Habitual} [solere\\]
[Asp \textsubscript{Predispositional}
[tendere]
[Asp \textsubscript{Repetetive \textsubscript{i}} [tornare]
[Mod \textsubscript{Volition}
[volere][,phantom]
]]]]
\end{forest}
\end{document}
而我的进度条代码如下:
\package{progressbar}
\begin{document}
\progressbar[linecolor=black, filledcolor=green]{0.6}\llap{\raisebox{1.5pt
{\tiny$60\%$}\hspace{0.8cm}}
\end{document}
我怎样才能将这两者结合在一起?我尝试在每个节点后添加进度条代码,但好像代码在森林环境中不起作用。
提前谢谢您!
答案1
由于\progressbar
内部使用 TikZ 并且嵌套 TikZ 图片至少很烦人,我们可以\progressbar
忘记创建自己的tikzpicture
。
由于条形图是不对称的(最左边的点位于X=0) 我们将它放在一个矩阵里面,而这个矩阵又可以像节点一样放置,这允许我们使用label
。
progressbar
我向 forest添加了接受四个参数的键:
- 选择
\progressbar
, - 进度值和
- 文本节点的选项
- 其内容。
代码
\documentclass[tikz]{standalone}
\usepackage{forest, progressbar}
\forestset{
progressbar/.style n args={4}{
label={[matrix, inner sep=+0pt]below:%
\let\tikzpicture\scope
\let\endtikzpicture\endscope
\progressbar[{#1}]{#2}
\path (Begin) -- node[{midway,anchor=center,node font=\tiny,#3}] {#4\,\%} (End);
\expandafter\pgfmatrixendrow}}}
\progressbarchange{linecolor=black, filledcolor=green}
\begin{document}
\begin{forest} for tree={calign=fixed edge angles}
[Asp \textsubscript{Habitual}
[solere, progressbar={}{.6}{}{60}]
[Asp \textsubscript{Predispositional}
[tendere, progressbar={filledcolor=yellow}{.3}{}{30}]
[Asp \textsubscript{Repetetive \textsubscript{i}}
[tornare]
[Mod \textsubscript{Volition}
[volere, progressbar={filledcolor=blue, width=1cm}{.85}{white}{85}]
[,phantom]
]
]
]
]
\end{forest}
\end{document}
输出
答案2
我通过在我想要的栏目终端节点之后指定此代码来解决它:
[volere, tikz={\node[below=-2.5pt of .south]
{\progressbar[linecolor=black, filledcolor=green]{0.6}\llap{\raisebox{1.5pt
{\tiny$60\%$}\hspace{0.8cm}}};}]
完整代码如下:
\usepackage{tikz}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={calign=fixed edge angles},
[Asp \textsubscript{Habitual} [solere]
[Asp \textsubscript{Predispositional}
[tendere]
[Asp \textsubscript{Repetetive \textsubscript{i}} [tornare]
[Mod \textsubscript{Volition}
[volere, tikz={\node[below=-2.5pt of .south] { \progressbar[linecolor=black, filledcolor=green]{0.6}\llap{\raisebox{1.5pt}{\tiny$60\%$}\hspace{0.8cm}}};}][,phantom]
]]]]
\end{forest}
\end{document}