TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

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, 17:04

KatjaBachelorThesis's gravatar image

KatjaBachelo...
2312
Akzeptiert-Rate: 0%

bearbeitet 08 Sep '14, 13:13

esdd's gravatar image

esdd
15.2k123954

1

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

(19 Aug '14, 19: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, 17:45

Henri's gravatar image

Henri
14.5k53338
Akzeptiert-Rate: 46%

bearbeitet 24 Aug '14, 11:43

Super, vielen Dank fuer die schnelle Antwort.

(19 Aug '14, 18:27) KatjaBachelo...
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×668
×27
×7
×7

gestellte Frage: 19 Aug '14, 17:04

Frage wurde gesehen: 8,709 Mal

zuletzt geändert: 08 Sep '14, 13:13