Liebes Forum,

ich habe eine Frage zur Erstellung von Baeumen. Ich habe es bereits geschafft, meinen Baum zu Erstellen, bin auch recht zufrieden damit, brauche aber jetzt noch eine vertikale, gestrichelte Linie zwischen den beiden Knoten B und C. Weiss vielleicht jemand, ob das moeglich ist und wenn ja, wie? Mein bisheriger Code sieht wie folgt aus:

Open in writeLaTeX
\documentclass[12pt, a4paper, bibliography=totoc, abstracton]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{trees}

\begin{document}
\begin{figure}

% Set the overall layout of the tree
\tikzstyle{level 1}=[level distance=3.5cm, sibling distance=3.5cm]
\tikzstyle{level 2}=[level distance=3.5cm, sibling distance=2cm]

% Define styles for bags and leafs
\tikzstyle{bag} = [text width=4cm, text centered,  inner sep=1pt]
\tikzstyle{end} = [circle, minimum width=3pt,fill, inner sep=0pt]

\begin{tikzpicture}[grow=right, sloped]
\tikzset{frontier/.style={distance from root=150pt}}

\node {A}
    child {
      node[bag] {C}        
        child {
            node[end, label=right:
                {$G (2,2)$}] {}
            edge from parent
            node[above] {}
            node[below]  {$s_{22}$}
        }
        child {
            node[end, label=right:
                {$F (4,1)$}] {}
            edge from parent
            node[above] {$s_{21}$}
            node[below]  {}
        }
        edge from parent 
        node[above] {}
        node[below]  {$s_{12}$}
}
   child {
    node[bag] {B}        
        child {
            node[end, label=right:
                {$E (1,4)$}] {}
            edge from parent
            node[above] {}
            node[below]  {$s_{22}$}
        }
        child {
            node[end, label=right:
                {$D (3,3)$}] {}
            edge from parent
            node[above] {$s_{21}$}
            node[below]  {}
        }
        edge from parent 
        node[above] {}
        node[below]  {$s_{12}$}
};

\end{tikzpicture}
\end{figure}

\end{document}

Vielen Dank im Voraus. Liebe Gruesse, Katja.

gefragt 19 Aug '14, 11:04

KatjaBachelorThesis's gravatar image

KatjaBachelo...
2312
Akzeptiert: 100%

bearbeitet 08 Sep '14, 07:13

esdd's gravatar image

esdd
14.2k53251

1

Hallo Katja, herzlich willkommen auf der TeXwelt! Prima, dass Du gleich konkreten Code mitbringst.

(19 Aug '14, 13:48) stefan ♦♦

Solch eine Verbindung ist in einem Baum nicht vorgesehen. Deshalb muss man sie von Hand reinmalen indem man die entsprechenden Nodes benennt und dann mittels \draw[...] (B) -- (C); die Linie setzt.

Bitte verwende in Zukunft tikzset statt tikzstyle, ich habe Deinen Code mal angepasst.

Open in writeLaTeX
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\begin{figure}
  \tikzset{
    % Set the overall layout of the tree
    level 1/.style = {level distance=3.5cm, sibling distance=3.5cm},
    level 2/.style = {level distance=3.5cm, sibling distance=2cm},
    % Define styles for bags and leafs
    bag/.style = {text width=4cm, text centered,  inner sep=1pt},
    end/.style = {circle, minimum width=3pt,fill, inner sep=0pt}
  }
  \begin{tikzpicture}[grow=right, sloped]
    \tikzset{frontier/.style={distance from root=150pt}}

    \node {A}
    child {
      node[bag] (C) {C}        
      child {
        node[end, label=right:
        {$G (2,2)$}] {}
        edge from parent
        node[above] {}
        node[below]  {$s_{22}$}
      }
      child {
        node[end, label=right:
        {$F (4,1)$}] {}
        edge from parent
        node[above] {$s_{21}$}
        node[below]  {}
      }
      edge from parent 
      node[above] {}
      node[below]  {$s_{12}$}
    }
    child {
      node[bag] (B) {B}        
      child {
        node[end, label=right:
        {$E (1,4)$}] {}
        edge from parent
        node[above] {}
        node[below]  {$s_{22}$}
      }
      child {
        node[end, label=right:
        {$D (3,3)$}] {}
        edge from parent
        node[above] {$s_{21}$}
        node[below]  {}
      }
      edge from parent 
      node[above] {}
      node[below]  {$s_{12}$}
    };
    \draw[dashed,shorten <=4pt,shorten >=4pt] (B) -- (C);
  \end{tikzpicture}
\end{figure}
\end{document}

alt text

Mit graphdrawing

Das ist doch schon viel handlicher. Benötigt LuaTeX.

Open in writeLaTeX
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{quotes,graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
  \graph[
  tree layout,grow=right,
  level distance=3.5cm,sibling distance=2cm,
  edge=sloped
  ] {
    A ->["$s_{12}$"] {
      B ->["$s_{21}$"] "$D(3,3)$", B ->["$s_{22}$"] "$E(1,4)$",
      C ->["$s_{21}$"] "$F(4,1)$", C ->["$s_{22}$"] "$G(2,2)$"
    },
    B --[dashed] C
  };
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 19 Aug '14, 11:45

Henri's gravatar image

Henri
10.0k31730

bearbeitet 24 Aug '14, 05:43

Super, vielen Dank fuer die schnelle Antwort.

(19 Aug '14, 12:27) KatjaBachelo...
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
×22
×6
×5

Frage gestellt: 19 Aug '14, 11:04

Frage wurde angeschaut: 3,248 Mal

Zuletzt aktualisiert: 08 Sep '14, 07:13