2
1

Wie kriege ich mit Tikz am besten einen ungewurzelten Baum hin, sodass er wie im 2. Bild aussieht. Mein 1. Versuch ist noch etwas unschön. Auch würde ich gern die beiden Zwischenknoten wie im 2. Bild "ausblenden" können.

Open in writeLaTeX
\begin{tikzpicture}[scale=0.9,level/.style={sibling distance=60mm/#1},grow=right]
\node[circle,draw] (i){$i$}
  child {node[circle,draw] (a) {$ $}
    child {node[grow=down,circle,draw] (j) {$j$}}
    child {node[circle,draw] (c) {$ $}
        child {node[circle,draw] (k) {$k$}}
        child {node[circle,draw] (l) {$l$}}}};

\path (i) -- (a) node [midway, right] {\; a \;};
\path (j) -- (a) node [midway, right] {\; b \;};
\path (a) -- (c) node [midway, left] {\; c \;};
\path (c) -- (k) node [midway, right] {\; d \;};
\path (c) -- (l) node [midway, left] {\; e \;};
\end{tikzpicture}

alt text

alt text

gefragt 12 Mai '14, 17:21

BorrNar's gravatar image

BorrNar
6726
Akzeptiert: 100%

bearbeitet 15 Mai '14, 15:26

esdd's gravatar image

esdd
15.0k53651


Um Zwischenknoten "auszublenden" kannst du coordinate statt node verwenden.

Den Baum selbst könnte man aus zwei Teilbäumen aufbauen, die man dann einfach miteinander verbindet:

Open in writeLaTeX
\documentclass[tikz,margin=5pt]{standalone}
\begin{document}
\begin{tikzpicture}[scale=0.9,sibling distance=2.5cm]
% linker Teilbaum
\coordinate (a)[grow=left]
        child {node[circle,draw] (i) {$i$}}
        child {node[circle,draw] (j) {$j$}};
% rechter Teilbaum
\coordinate[xshift=2cm](c)[grow'=right]
        child {node[circle,draw] (k) {$k$}}
        child {node[circle,draw] (l) {$l$}};
% Verbindung beider Teilbäume
\draw(a)--node[above]{c}(c);
% Beschriftungen
\path[outer sep=2pt] 
  (i) -- node[above]{a} (a)
  (j) -- node [below]{b} (a)
  (c) -- node[above]{d} (k)
  (c) -- node [below]{e} (l) ;
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 12 Mai '14, 18:50

esdd's gravatar image

esdd
15.0k53651

Ich musste bei deiner Graphik als erstes an das spring layout der neuen graphdrawing-Bibliothek denken:

Open in writeLaTeX
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs, graphdrawing, quotes, babel}
\usegdlibrary{force}
\begin{document}
\begin{tikzpicture}
\graph [spring layout, horizontal=root left to root right, nodes={circle, draw}, node distance=2.5cm, root/.style={as=, cut policy=none, draw=none}] {
    {{i, j}-- root left [root] --["c"] root right [root] --{k, l}};
    i --["a"] root left;
    j --["b"'] root left;
    k --["d"'] root right;
    l --["e"] root right;
};
\end{tikzpicture}
\end{document}

Zum Übersetzten muss LuaLaTeX verwendet werden.

alt text

Permanenter link

beantwortet 15 Mai '14, 12:02

sudo's gravatar image

sudo
1.9k2917

bearbeitet 16 Mai '14, 02:19

1

@sudo Toller Vorschlag! Gerade solche Beispiele helfen beim Verständnis der neuen Möglichkeiten ab Version 3.0.0.

(16 Mai '14, 04:31) esdd
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×522
×8

Frage gestellt: 12 Mai '14, 17:21

Frage wurde angeschaut: 2,936 Mal

Zuletzt aktualisiert: 16 Mai '14, 04:31