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
676
Akzeptiert: 100%

bearbeitet 15 Mai '14, 15:26

esdd's gravatar image

esdd
14.2k53251


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
14.2k53251

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.9k1817

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

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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:

×492
×8

Frage gestellt: 12 Mai '14, 17:21

Frage wurde angeschaut: 2,412 Mal

Zuletzt aktualisiert: 16 Mai '14, 04:31