改进树形图

改进树形图

有人知道如何改进该图表吗?

我不知道,但目前为止它并没有真正让我感到震惊。例如,我无法管理好看的行长和定位,同时仍然清楚哪些部分属于一起......

我很感激任何帮助!

\documentclass[a4paper, 12pt]{report}

\usepackage{forest}
\usetikzlibrary{shapes,arrows,positioning,shadows,trees}

\begin{document}
\begin{center}
    \resizebox{.8\textwidth}{!}{%
        \begin{forest}
            for tree={
                child anchor=west,
                parent anchor=east,
                grow'=east,
                draw,
                l sep=2cm,
                node options={
                    align=center },
                text width=2.7cm,
                anchor=west,
                edge path={
                    \noexpand\path[\forestoption{edge}]
                    (.child anchor) -| +(-5pt,0) -- +(-5pt,0) |-
                    (!u.parent anchor)\forestoption{edge label};
                },
            }
            [LMS, s sep=.5cm
            [Funktionale \\Anforderungen]
            [Nicht-Funktionale Anforderungen
            [Zuverl{\"a}ssig\-keit]
            [Skalierbar\-keit und Effizienz]
            [Benutzer\-freundlich\-keit]
            [Portierbarkeit]
            [Datenschutz / Informationssicherheit]
            [Erweiterbar\-keit]
            [Anpassbarkeit]
            ]
            [Technische Rahmen\-bedinungen
            [System\-architektur]
            [Software\-kriterien]
            [Schnittstellen]
            [Wartung und Support
            [Support\-leistungen]
            [Software-Pflege]
            ]
            ]     
            ]
        \end{forest}    
    }
\end{center}

\end{document}

树

答案1

对于树形图的其他新手来说,可以通过以下方式改进标准树:

  • 着色元素
  • 使用父类、子类、孙类
  • 以及圆角

    \documentclass[a4paper, 12pt]{article}
    \usepackage{forest}
    
    \usetikzlibrary{shapes,arrows,positioning,shadows,trees}
    
    \tikzset{parent/.style={align=center,text width=3cm,rounded corners=3pt},
    child/.style={align=center,text width=3cm,rounded corners=3pt}
    }
    
    \begin{document}
    
    \begin{center}
    \resizebox{.7\textwidth}{!}{%
        \begin{forest}
            for tree={
                child anchor=west,
                parent anchor=east,
                grow'=east,
                draw,
                rounded corners,
                node options={
                    align=center },
                text width=2.7cm,
                anchor=west,
                edge path={
                    \noexpand\path[\forestoption{edge}]
                    (.child anchor) -| +(-5pt,0) -- +(-5pt,0) |-
                    (!u.parent anchor)\forestoption{edge label};
                },
            }       
            % Never have an empty line at this position!!! causes "Paragraph ended before \forestrset was complete. }"
            [LMS, fill=gray!30, parent
            [Funktionale \\Anforderungen, fill=brown!30, child]
            [Nicht-Funktionale Anforderungen, for tree={child, fill=red!30}
            [Zuverl{\"a}ssig\-keit]
            [Skalierbar\-keit und Effizienz]
            [Benutzer\-freundlich\-keit]
            [Portierbarkeit]
            [Datenschutz / Informationssicherheit]
            [Erweiterbar\-keit]
            [Anpassbarkeit]
            ]
            [Technische Rahmen\-bedinungen, for tree={child, fill=blue!30}
            [System\-architektur]
            [Software\-kriterien]
            [Schnittstellen]
            [Wartung und Support
            [Support\-leistungen]
            [Software-Pflege]
            ]
            ]     
            ]
        \end{forest}    
    }
    \end{center}
    
    \end{document}
    

改良树

根据 Sašo Živanović 的建议进行编辑。

(请注意,这仅适用于森林 v2)

\documentclass[a4paper, 12pt]{report}

\usepackage[edges]{forest}
\usetikzlibrary{trees}

%Defining Classes Parent and Child
\tikzset{parent/.style={text width=2cm,rounded corners=8pt},
    child/.style={text width=3cm,rounded corners=3pt}
}

\begin{document}
    \begin{center}
        \resizebox{.7\textwidth}{!}{%
            \begin{forest}
                forked edges,
                for tree={
                    grow'=east,
                    draw,
                    rounded corners,
                    node options={
                        align=center },
                }       
                % Never have an empty line somewhere!!! this causes "Paragraph ended before \forestrset was complete. }"
                [LMS, fill=gray!30, parent  %apply class (affects all elements below)
                    [Funktionale \\Anforderungen, fill=brown!30, child]     %apply class
                    [Nicht-Funktionale Anforderungen, for tree={child, fill=red!30}     %apply class
                        [Zuverl{\"a}ssig\-keit]
                        [Skalierbar\-keit und Effizienz]
                        [Benutzer\-freundlich\-keit]
                        [Portierbarkeit]
                        [Datenschutz / Informationssicherheit]
                        [Erweiterbar\-keit]
                        [Anpassbarkeit]
                    ]
                    [Technische Rahmen\-bedinungen, for tree={child, fill=blue!30}      %apply class
                        [System\-architektur]
                        [Software\-kriterien]
                        [Schnittstellen]
                        [Wartung und Support
                            [Support\-leistungen]
                            [Software-Pflege]
                        ]
                    ]     
                ]
            \end{forest}    
        }
    \end{center}

\end{document}

新树

相关内容