让森林呈水平状

让森林呈水平状

我想制作一个垂直森林并对齐绿色盒子。来自这里我得到了一个很好的for tree=但我实际上不明白这里发生了什么。

目前我有这个。

在此处输入图片描述

\documentclass{article}
\usepackage[left=5pt,right=5pt,top=10pt,bottom=10pt]{geometry}
\usepackage{forest}
\usepackage{caption}
\newcommand{\vs}{\vspace{2mm}}

\begin{document}

\begin{figure}
\centering
\resizebox{1\textwidth}{!}{%    
\begin{forest}
    for tree={
        child anchor=west, % connection-point ->north
        parent anchor=east, % connection-point ->south
        grow'=east, text centered, %grow down -> south
        text width=5cm, 
        draw, %draw the tree
        anchor=west, % ?
        edge path={ % actually dont understand here anything
            \noexpand\path[\forestoption{edge}]
            (.child anchor) -| +(-2pt,0) -- +(-8pt,0) |-
            (!u.parent anchor)\forestoption{edge label};
        }
    }
        [level0
            [level1
                [level2-1, bottom color=green!20
                    [level3-1]
                    [level3-2]
                    ]
                [level2-2, bottom color=green!20
                    [level3-3]
                    [level3-4]
                    ]
                ]
            [level2-3, bottom color=green!20
                [loooooooong -level3-5]
                [loooooooong -level3-6]
                ]
        ] 
    \end{forest}}
\captionof{figure}{myname}
\label{fig:stil_ml}
\end{figure}

\end{document}

通过代码命令的改变,我得到了这个。

在此处输入图片描述

但看上去不太漂亮。

我最终想要的是这个。

在此处输入图片描述

答案1

如果我正确理解了您编辑的问题,那么您正在寻找类似这样的内容:

编辑: 被认为是编辑过的答案:

在此处输入图片描述

编辑: 已修正锚点并添加tier/.option=level

\documentclass{article}
\usepackage[left=5pt,right=5pt,top=10pt,bottom=10pt]{geometry}
\usepackage[edges]{forest}      % <--- added option edges
\usepackage{caption}

\begin{document}
    \begin{figure}
    \centering
\begin{forest}
    for tree={
% nodes
        text centered, 
        text width=24mm,
        minimum height=9mm,
        font=\footnotesize\linespread{0.9}\selectfont,
        draw, 
% tree
        grow' = south,            % <--- grow down -> south
       anchor = north,            % <--- new
        forked edge,              % <--- new
        l sep = 6mm,
        s sep = 2mm,
     fork sep = 3mm,              % <--- new
         edge = {draw, semithick},% <--- changed
  where level = {2}{top color=green!50!black, bottom color=green!20}
                    {},
tier/.option = level
            }% end of tree
[level0
    [level1
        [level2-1, 
            [level3-1]
            [level3-2]
            ]
        [level2-2, 
            [level3-3]
            [level3-4]
            ]
        ]
    [,coordinate
        [level2-3 
            [loooooooong -level3-5]
            [loooooooong -level3-6]
        ]
    ]
]
    \end{forest}
\caption{myname}                 % <--- changed
\label{fig:stil_ml}
    \end{figure}
\end{document}

与您的相比,上述 MWE 中的变化以 标记% <--- ...。由于树相当宽,我将节点形状的宽度减小到 24 毫米,并在必要时允许两行节点内容,选择最小高度,以便所有节点都具有相同的高度。也用于footnotesize字体大小。

相关内容