Fehlerbaum mit TikZ: Unterbaum auf mehreren Ebenen zeichnen

Fehlerbaum mit TikZ: Unterbaum auf mehreren Ebenen zeichnen

Auf den Zeilen des Fehlerbaums im TiKZ-Beispiel (http://www.texample.net/tikz/examples/fault-tree/), habe ich den folgenden Fehlerbaum erstellt

 \node (g1) [event] {Project fails \\ E0}
            child {node (e1) {No legal permit \\(E1)}
                child {node (e11) {No legal permit A \\ (E11)}}
                child {node (e12) {No legal permit B \\ (E12)}}
                child {node (e13) {No legal permit C \\ (E13)}}
            }
        child {node (e2) {No financing \\(E2)}
            child {node (e21) {No financing A \\ (E21)}}
            child {node (e22) {No financing B \\ (E22)}}
            child {node (e23) {No financing C \\ (E23)}}
        }
        child {node (e3) {No collaboration}
            child {node (e31) {Low incentive}}
            child {node (e32) {Low trust}}
        };

Allerdings überlappen sich die Knoten des Baums. Ich habe versucht, den Abstand zwischen den Knoten zu verringern, aber das sieht in diesem Fall nicht so elegant aus. Gibt es eine Möglichkeit, dass der Teilbaum E2 auf einer niedrigeren Ebene liegt als der Teilbaum E1? Bildbeschreibung hier eingeben

Antwort1

Ist es das, wonach Sie suchen? Es scheint, dass Ihr Code nicht das Bild widerspiegelt, das Sie gepostet haben. Diese Lösung hat versucht, das gewünschte Bild zu generieren und den Teilbaum E2 tiefer als den Teilbaum E1 zu verschieben. Dies wird durch die Verwendung der Option [level distance=xx]am e2Knoten erreicht.

child[level distance=70mm]  {node (e2) {No financing \\(E2)}

Dieselbe Idee gilt, wenn der E3-Teilbaum ein wenig nach links verschoben werden soll. Aber [sibling distance=xx]hier wird verwendet

child[sibling distance=30mm] {node (e3) {No collaboration}

Wenn keine Tore erforderlich sind, entfernen Sie den Code im letzten Teil.

Code

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{trees,calc,shadings,shapes.gates.logic.US,positioning,arrows}


\begin{document}

\begin{tikzpicture}
 [
% Gates and symbols style
    and/.style={and gate US,thick,draw,fill=red!60,rotate=90,
        anchor=east,xshift=-1mm},
    or/.style={or gate US,thick,draw,fill=blue!60,rotate=90,
        anchor=east,xshift=-1mm},
    be/.style={circle,thick,draw,fill=green!60,anchor=north,
        minimum width=0.7cm},
% Label style
    label distance=3mm,  every label/.style={blue},
% Event style
    event/.style={rectangle,thick,draw,fill=yellow!20,text width=2cm, text centered,font=\sffamily,anchor=north},
% Children and edges style
    edge from parent/.style={very thick,draw=black!70},
    edge from parent path={(\tikzparentnode.south) -- ++(0,-1.05cm)-| (\tikzchildnode.north)},
    level 1/.style={sibling distance=5cm,level distance=1.5cm, growth parent anchor=south,nodes=event},
    level 2/.style={sibling distance=3cm, level distance=2cm},
    level 3/.style={sibling distance=3cm},
    level 4/.style={sibling distance=3cm}
    ]
%% Draw events and edges
 \node (g1) [event] {Project fails \\ E0}
            child{node (e1) {No legal permit \\(E1)} 
                child {node (e11) {No legal permit A \\ (E11)}}
                child {node (e12) {No legal permit B \\ (E12)}}
                child {node (e13) {No legal permit C \\ (E13)}}
            }
        child[level distance=70mm]  {node (e2) {No financing \\(E2)}
            child {node (e21) {No financing A \\ (E21)}}
            child {node (e22) {No financing B \\ (E22)}}
            child {node (e23) {No financing C \\ (E23)}}
        }
        child {node (e3) {No collaboration\\ (E3)}
            child {node (e31) {Low incentive\\ (E31)}}
            child {node (e32) {Low trust\\ (E32)}}
        };
%  Remove what follows if no gates are required
   \node [or]   at (g1.south)   []  {};
   \node [or]   at (e1.south)   []  {};
   \node [or]   at (e2.south)   []  {};
   \node [and]  at ([yshift=1mm]e21.south)  []  {};
   \node [and]  at ([yshift=1mm]e22.south)  []  {};
   \node [and]  at ([yshift=1mm]e23.south)  []  {};
   \node [and]  at (e3.south)   []  {};
   \node [be]   at (e11.south)  []  {};
   \node [be]   at (e12.south)  []  {};
   \node [be]   at (e13.south)  []  {};
   \node [be]   at (e31.south)  []  {};
   \node [be]   at (e32.south)  []  {};
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen