我想移动第 3 级(Buchhaltung、Einkauf、Vertrieb 等)中的节点,并且像图片中那样将第 4 级中的节点稍微向右移动,同时我还希望第 2 级(Produktion、Forschung und Entwicklung)中的节点位于节点“Technischer Bereich”下方的中心(参见图片)。
\begin{figure}
\centering
\begin{tikzpicture}[auto, node distance = 0.4cm, thick,
every node/.style = {rectangle, font = \sffamily, white,
top color = green!90!black, bottom color = green!60!black,
text width = 2.4cm, align = center, minimum height = 1cm}]
\node (GF) {\textbf{GF}\\Geschäftsführer};
\coordinate [below = 0.9cm of GF] (E1);
\coordinate [below = 1.6cm of GF] (E2);
\coordinate [below = 2.3cm of GF] (E3);
\coordinate [below = 3cm of GF] (E4);
\node (Kbereich) [left = 22mm of E1] {Kaufm\"ann- \\ ischer Bereich};
\node (Tbereich) [right = 22mm of E1] {Technischer \\ Bereich};
\node (Einkauf) [below = of Kbereich] {Einkauf};
\node (Absatz) [ right = of Einkauf]{Absatz};
\node (Verwaltung) [left = of Einkauf] {Verwaltung};
\node (Produktion) [below = of Tbereich] {Produktion};
\node (FuE) [right = of Produktion] {Forschung \& \\ Entwicklung};
\node (Buchhaltung) [below = of Verwaltung] {Buchhaltung};
\node (Personalwesen) [below = of Buchhaltung] {Personalwesen};
\draw [green!60!black,thick]
(GF) -| (Kbereich)
(GF) -| (Tbereich)
(Kbereich) -| (Verwaltung)
(Kbereich) -- (Einkauf)
(Kbereich) -| (Absatz)
(Tbereich) -- (Produktion)
(Tbereich) -| (FuE)
(Verwaltung) |- (Buchhaltung);
\end{tikzpicture}
\end{figure}
有人能告诉我如何解决这个问题吗?非常感谢!
答案1
请记住,该positioning
库允许您使用 将相对节点放置在具有所有方向位移的其他节点上above/below left/right = above/below_displacement and left/right_displacement of node_name
,要进行手动调整,您必须放弃自动选项,为了不写入每个位移,我建议创建 3 个或更多变量以统一方式控制所有级别或逐级别的分离;然后对于连接器,使用时间坐标在时间点连接节点;最后,我还修改了代码以使其更具可读性,记得使用换行符和缩进,这样您就不会迷失在代码中,最后我根据喜好添加了阴影,如果每个都在一行中,您可以在样式中激活或停用修饰符,将它们作为注释。
结果:
梅威瑟:
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{positioning,shadows.blur}
\begin{document}
\def\Ysep{0.5cm}
\def\Xsep{0.5cm}
\def\Wbox{2.5cm}
\begin{tikzpicture}[
thick,
%auto, %not needed for manual manipulation
every node/.style = {
rectangle,
font = \sffamily,
white,
top color = green!90!black,
bottom color = green!60!black,
text width = 2.5cm,
align = center,
minimum width = \Wbox,
minimum height = 1cm,
blur shadow,
inner sep=0 % to obtain real width of box nodes
}
]
\node(GF){\textbf{GF}\\Geschäftsführer};
\node[below left=\Ysep and \Xsep of GF](Kbereich){Kaufm\"ann- \\ ischer Bereich};
\node[below left=\Ysep and \Xsep of Kbereich] (Verwaltung){Verwaltung};
\node[below right=\Ysep and \Xsep/2 of Verwaltung.south west] (Buchhaltung){Buchhaltung};
\node[below=\Ysep of Buchhaltung] (Personalwesen){Personalwesen};
\node[below =\Ysep of Kbereich] (Einkauf){Einkauf};
\node[below right=\Ysep and \Xsep/2 of Einkauf.south west] (a){a};
\node[below=\Ysep of a] (b){b\\b};
\node[below right=\Ysep and \Xsep of Kbereich] (Absatz){Absatz};
\node[below right=\Ysep and \Xsep/2 of Absatz.south west] (c){c};
\node[below=\Ysep of c] (d){d\\d};
\node[below right=\Ysep and \Xsep*1.5+\Wbox/2 of GF] (Tbereich) {Technischer \\ Bereich};
\node[below left=\Ysep and \Xsep/2 of Tbereich.-90] (Produktion){Produktion};
\node[below right=\Ysep and \Xsep/2 of Produktion.south west] (e){e};
\node[below=\Ysep of e] (f){f\\f};
\node[below right=\Ysep and \Xsep/2 of Tbereich.-90] (FuE){Forschung \& \\ Entwicklung};
\node[below right=\Ysep and \Xsep/2 of FuE.south west] (g){g};
\node[below=\Ysep of g] (h){h\\h};
\draw [green!60!black,thick]
(GF.-90)--++(0,-\Ysep/2) coordinate (temp) -| (Kbereich)
(temp) -| (Tbereich)
(Kbereich.-90)--++(0,-\Ysep/2) coordinate (temp) -| (Verwaltung)
(temp) -- (Einkauf)
(temp) -| (Absatz)
(Tbereich.-90) --++(0,-\Ysep/2) coordinate (temp) -| (Produktion)
(temp) -| (FuE)
(Verwaltung.south west)++(\Xsep/4,0) coordinate (temp) -- (temp|-Buchhaltung) coordinate (temp) -- (Buchhaltung)
(temp) |- (Personalwesen)
(Einkauf.south west)++(\Xsep/4,0) coordinate (temp) -- (temp|-a) coordinate (temp) -- (a)
(temp) |- (b)
(Absatz.south west)++(\Xsep/4,0) coordinate (temp) -- (temp|-c) coordinate (temp) -- (c)
(temp) |- (d)
(Produktion.south west)++(\Xsep/4,0) coordinate (temp) -- (temp|-e) coordinate (temp) -- (e)
(temp) |- (f)
(FuE.south west)++(\Xsep/4,0) coordinate (temp) -- (temp|-g) coordinate (temp) -- (g)
(temp) |- (h);
\end{tikzpicture}
\end{document}
答案2
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,calc}
\begin{document}
\begin{tikzpicture}[auto, node distance = 0.4cm, thick,
every node/.style = {rectangle, font = \sffamily, white,
top color = green!90!black, bottom color = green!60!black,
text width = 2.4cm, align = center, minimum height = 1cm}]
\node (GF) {\textbf{GF}\\Geschäftsführer};
\coordinate [below = 0.9cm of GF] (E1);
\coordinate [below = 1.6cm of GF] (E2);
\coordinate [below = 2.3cm of GF] (E3);
\coordinate [below = 3cm of GF] (E4);
\node (Kbereich) [left = 22mm of E1] {Kaufm\"ann- \\ ischer Bereich};
\node (Tbereich) [right = 30mm of E1] {Technischer \\ Bereich};
\node (Einkauf) [below = of Kbereich] {Einkauf};
\node (Absatz) [ right = of Einkauf]{Absatz};
\node (Verwaltung) [left = of Einkauf] {Verwaltung};
\node (Produktion) [below= of Tbereich,xshift=-10ex] {Produktion};
\node (FuE) [right = of Produktion] {Forschung \& \\ Entwicklung};
\node (Buchhaltung) [below= of Verwaltung,xshift=2ex] {Buchhaltung};
\node (Personalwesen) [below = of Buchhaltung] {Personalwesen};
\draw [green!60!black,thick]
(GF) -| (Kbereich)
(GF) -| (Tbereich)
(Kbereich) -| (Verwaltung)
(Kbereich) -- (Einkauf)
(Kbereich) -| (Absatz)
(Tbereich) |- ($(Tbereich.south)!0.5!(Produktion.north)$) -| (Produktion.north)
(Tbereich) |- ($(Tbereich.south)!0.5!(FuE.north)$) -| (FuE.north)
([xshift=-1ex]Buchhaltung.west|-Verwaltung.south) |- (Buchhaltung.west)
([xshift=-1ex]Personalwesen.west|-Verwaltung.south) |- (Personalwesen.west);
\end{tikzpicture}
\end{document}