有人知道如何改进该图表吗?
我不知道,但目前为止它并没有真正让我感到震惊。例如,我无法管理好看的行长和定位,同时仍然清楚哪些部分属于一起......
我很感激任何帮助!
\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}