Baumdiagramm mit tikz erstellen

Tabellen und Grafiken erstellen und anordnen


se1234
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Sa 27. Mär 2010, 22:03

Baumdiagramm mit tikz erstellen

Beitrag von se1234 »

Hallo zusammen,

benötige ein Baumdiagramm, von der Struktur genau so wie im Anhang.
Habe es bereits mit dem package tikz versucht, aber blicke da überhaupt nicht durch.
Kann mir vielleicht jemand helfen, so etwas hinzukriegen??

Danke.

Gruß
Dateianhänge
Modelle_Baumdiagramm.jpg
Modelle_Baumdiagramm.jpg (115.21 KiB) 4374 mal betrachtet

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Hallo ich habe jetzt keine Zeit zum Basteln, aber das Suchwort ist "tree" im pgfmanual. Zudem brauchst du den key "grow".
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


se1234
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Sa 27. Mär 2010, 22:03

Beitrag von se1234 »

Hi,

habe es versucht, habe es testweise probiert mit:
\usetikzlibrary{trees}
\usetikzlibrary{shapes}
\begin{tikzpicture}[
    grow=right,
    level 1/.style={sibling distance=3.0cm,level distance=3.2cm},
    level 2/.style={sibling distance=1.0cm, level distance=5.0cm},
    edge from parent/.style={very thick,draw=blue!40!black!60,
        shorten >=4pt, shorten <=4pt},
    edge from parent path={(\tikzparentnode.east) -- (\tikzchildnode.west)},
    kant/.style={text width=0.3cm, text centered, sloped},
    every node/.style={text ragged, inner sep=0.8mm},
    punkt/.style={rectangle, rounded corners, shade, top color=white,
    bottom color=blue!50!black!20, draw=blue!40!black!60, very
    thick }
    ]

\node[punkt, text width=5.5em] {\textbf{SRES A1B}}
    %Lower part lv1
    child {
        node[punkt, text width=6em] {\textbf{ECHAM5}}
        child {
            node [punkt, rectangle split, rectangle split parts=6]{
                \textbf{HadRM3 (Met Office)}
                \nodepart{second}
                \textbf{REMO (MPI)}
                \nodepart{third}
                \textbf{HIRHAM (DMI)}
                \nodepart{fourth}
                \textbf{RACMO (KNMI)}
                %\nodepart{5}
                %\textbf{RCA (SMHI)}
                %\nodepart{sixth}
                %\textbf{REGCM3 (ICTP)}
            }
            edge from parent
                node[kant, above]}
            edge from parent
                node[kant, above]
                }
    %Next GCM
    child {
        node[punkt, text width=6em] {\textbf{CGCM3}}
        child {
            node [punkt, rectangle split, rectangle split parts=1]{
                \textbf{CRCM (OURANOS)}
            }
            edge from parent
                node[kant, above]}
            edge from parent{
                node[kant, above]}
                }
    %Upper part, lv1
    child {
        node[punkt, text width=6em] {\textbf{BCM}}
        child {
            node [punkt, rectangle split, rectangle split parts=2]{
                \textbf{HIRHAM (Met. NO)}
                \nodepart{second}
                \textbf{RCA (SMHI)}
            }
            edge from parent
                node[kant, above]}
            edge from parent{
                node[kant, above]}
                };
                \caption{Modelle mit Baumdiagramm}
                \label{fig:Modelle_Baumdiagramm}
\end{tikzpicture}
Kann es sein, dass man nicht mehr als 4 von den "nodeparts" erstellen kann?!?! Denn wenn ich "nodepart fifth" erstelle, dann ist alles verschoben...

Kann mir bitte jemand weiterhelfen??

Gruß, Sebi

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Hallo aus Ermangelung der Erfahrung mit dem Auto sibling Gedöns, habe ich mit meine Abstände selber ausgerechnet. Ich denke das sollte so richtig sein.
Schön ist natürlich anders:
\documentclass{report}

\usepackage[ngerman]{babel}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{tikz}
\usetikzlibrary{trees}

\begin{document}
\begin{tikzpicture}[level distance=45mm,
edge from parent/.style={->, draw,  thick},
every node/.style={fill=red!60,draw,inner sep=3pt, minimum width=15mm},
level 1/.style={fill=red!60,draw,inner sep=3pt, nodes={minimum width=35mm }},
level 2/.style={ nodes={minimum width=15mm }},
level 3/.style={sibling distance=5mm, nodes={minimum width=15mm }},
ohne/.style={edge from parent/.style={draw, thick }},
norm/.style={edge from parent/.style={->, thick,draw}}
]
\node{Begin}[edge from parent fork  right, grow=right]
child[ sibling distance=18mm]{ node[fill=blue!20]{zweite Ebene oben} 
	child[ohne] {child[norm]{node{vierte Ebene}}
	 child[norm]{node{vierte Ebene}
}
}
}
child[ sibling distance=25mm]{node[fill=red!20]{zweite Ebene} 
child[ohne]{child[norm]{node{vierte Ebene}}}
}
child[ sibling distance=20mm]{node{zweite Ebene}
     child[ sibling distance=15mm]{node{dritte Ebene}
               child {node{vierte Ebene}}
               child {node{vierte Ebene}}
               child {node{vierte Ebene}}
               child {node{vierte Ebene}} } 
      child[ sibling distance=10mm]{node{dritte ebene}
      		child {node{vierte Ebene}}
		child {node{vierte Ebene}}} 
      child[ sibling distance=10mm]{node{dritte Ebne} 
      		child {node{vierte Ebene}}
			child {node{vierte  Ebene}}}
}
child[ sibling distance=40mm]{node[fill=blue!20!red]{zweite Ebene} 
	child[ohne]{
		child[sibling distance=5mm, norm]{node{vierte Ebene}} 
			child[norm]{node{vierte Ebene}}
			child[norm]{node{vierte Ebene}}
			child[norm]{node{vierte Ebene}}
			child[norm]{node{vierte Ebene}}
			child[norm]{node{vierte Ebene}} }} 
child[ sibling distance=26.7mm]{node[fill=yellow]{zweite Ebene} 
child[ohne]{child[norm]{node{vierte Ebene}} 
child[norm]{node{vierte Ebene}} } }
child[ sibling distance=20.05mm]{node[fill=green]{zweite Ebene}
child[ohne]{
	child[norm]{node{vierte Ebene}}
	child[norm]{node{vierte Ebene}} } };
\end{tikzpicture}




\end{document}
Ich glaube aber ernsthaft, dass man tikz-qtree schneller bessere Ergebnisse erzielt als mit tikz so ganz alleine.
BTW dein Bsp war bei mit nicht lauffähig.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


se1234
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Sa 27. Mär 2010, 22:03

Beitrag von se1234 »

Hallo,

das sieht schon genau so aus, wie ich das brauche, aber wenn ich meine Sachen in die Boxen reintue, dann liegen die Boxen zum Teil übereinander...

Im Grunde muss das vom Layout so aussehen, wie Du es hattest. Nur ich kriege es nicht hin, meine tatsächlichen Daten in die Boxen zu tun. Die Sachen, die in die Boxen müssen, sind im Anhang.

Kann mir jemand nochmal helfen?


Vielen lieben Dank!

Gruß, Sebi
Dateianhänge
Baumdiagramm.doc
(19.5 KiB) 570-mal heruntergeladen

Benutzeravatar
Sepp99
Forum-Meister
Forum-Meister
Beiträge: 1569
Registriert: So 29. Aug 2010, 17:26
Wohnort: Offenhausen/OÖ

Beitrag von Sepp99 »

Mich würde interessieren, warum Du hier eine Word-Datei reinstellst?
Sepp.-

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Mich aber auch. Wenn du das Bsp schon ausprobiert hast, warum stellst du nicht dein Versuch rein? Irgendwie hab ich das Gefühl du suchst jemanden der deine Arbeit macht...
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


se1234
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Sa 27. Mär 2010, 22:03

Beitrag von se1234 »

Hi,

sorry, wollte nicht so einen Eindruck erwecken.

-Habe nun weiterhin probiert und es inzwischen so weit geschafft:
\usepackage{tikz}
\usetikzlibrary{trees}

\begin{tikzpicture}[level distance=37mm,
edge from parent/.style={->, draw,  thick},
every node/.style={fill=black!10,draw,inner sep=2pt, minimum width=20mm},
level 1/.style={fill=red!60,draw,inner sep=2pt, nodes={minimum width=20mm }},
level 2/.style={ nodes={minimum width=20mm }},
level 3/.style={sibling distance=5mm, nodes={minimum width=20mm }},
ohne/.style={edge from parent/.style={draw, thick }},
norm/.style={edge from parent/.style={->, thick,draw}}
]
\node{SRES A1B}[edge from parent fork  right, grow=right]
child[ sibling distance=38mm]{ node[fill=blue!45]{HadCM}
   child[sibling distance=9mm, norm]{node[fill=blue!45]{RCA3 (C4I)}}
    child[sibling distance=9mm, norm]{node[fill=blue!45]{RCA (SMHI)}}
     child[sibling distance=9mm, norm]{node[fill=blue!45]{PROMES (UCLM)}}
      child[sibling distance=9mm, norm]{node[fill=blue!45]{HIRHAM (METNO)}}
       child[sibling distance=9mm, norm]{node[fill=blue!45]{HadRM3 low sens. (HC)}}
        child[sibling distance=9mm, norm]{node[fill=blue!45]{HadRM3 high sens. (HC)}}
         child[sibling distance=9mm, norm]{node[fill=blue!45]{HadRM3 (HC)}}
          child[sibling distance=9mm, norm]{node[fill=blue!45]{CLM (ETHZ)}}
}
child[ sibling distance=20mm]{ node[fill=blue!20!red]{ECHAM5}
   child[sibling distance=9mm, norm]{node[fill=blue!20!red]{REMO (MPI)}}
    child[sibling distance=9mm, norm]{node[fill=blue!20!red]{RegCM (ICTP)}}
     child[sibling distance=9mm, norm]{node[fill=blue!20!red]{RCA (SMHI)}}
      child[sibling distance=9mm, norm]{node[fill=blue!20!red]{RACMO (KNMI)}}
       child[sibling distance=9mm, norm]{node[fill=blue!20!red]{DMI HIRHAM5 (DMI)}}
}
child[ sibling distance=20mm]{node[fill=red!20]{CGCM3}
child[sibling distance=9mm, norm]{node[fill=red!20]{CRCM (OURANOS)}}
}
child[ sibling distance=26.7mm]{node[fill=yellow]{BCM}
child[sibling distance=9mm, norm]{node[fill=yellow]{RCA (SMHI)}}
child[sibling distance=9mm, norm]{node[fill=yellow]{HIRHAM (METNO)}} 
}
child[ sibling distance=25.05mm]{node[fill=green]{ARPEGE}
   child[sibling distance=9mm, norm]{node[fill=green]{HIRHAM (DMI)}}
    child[sibling distance=9mm, norm]{node[fill=green]{Aladin (CNRM)}} 
   };
\end{tikzpicture}
Ich weiss nicht, welche Parameter ich ändern muss, damit das alles geordneter aussieht.
Will gerne, dass CGCM3, ECHAM5 und HadCM so geordnet sind wie ARPEGE und BCM. Was muss ich dafür ändern?
Kann man generell auch die Schrift verkleinern?

Sorry nochmal!

Sebi

se1234
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Sa 27. Mär 2010, 22:03

Beitrag von se1234 »

Ich bin´s nochmal.

Hab´s jetzt noch verfeinert:
\usetikzlibrary{trees}

\begin{tikzpicture}[level distance=50mm,
edge from parent/.style={->, draw,  thick},
every node/.style={fill=black!10,draw,inner sep=2pt, minimum width=20mm},
level 1/.style={level distance=24mm,fill=red!60,draw,inner sep=2pt, nodes={minimum width=20mm }},
level 2/.style={level distance=46mm, sibling distance=9mm, nodes={minimum width=20mm }},
ohne/.style={edge from parent/.style={draw, thick }},
norm/.style={edge from parent/.style={->, thick,draw}}
]
\node{SRES A1B}[edge from parent fork  right, grow=right]
child[ sibling distance=38mm]{ node[fill=blue!45]{HadCM}
   child[ sibling distance=9mm, norm]{node[fill=blue!45]{RCA3 (C4I)}}
    child[ sibling distance=9mm, norm]{node[fill=blue!45]{RCA (SMHI)}}
     child[ sibling distance=9mm, norm]{node[fill=blue!45]{PROMES (UCLM)}}
      child[ sibling distance=9mm, norm]{node[fill=blue!45]{HIRHAM (METNO)}}
       child[ sibling distance=9mm, norm]{node[fill=blue!45]{HadRM3Q3 (HC)}}
        child[ sibling distance=9mm, norm]{node[fill=blue!45]{HadRM3Q16 (HC)}}
         child[ sibling distance=9mm, norm]{node[fill=blue!45]{HadRM3Q0 (HC)}}
          child[ sibling distance=9mm, norm]{node[fill=blue!45]{CLM (ETHZ)}}
}
child[ sibling distance=20mm]{ node[fill=blue!20!red]{ECHAM5}
   child[ sibling distance=9mm, norm]{node[fill=blue!20!red]{REMO (MPI)}}
    child[ sibling distance=9mm, norm]{node[fill=blue!20!red]{RegCM (ICTP)}}
     child[ sibling distance=9mm, norm]{node[fill=blue!20!red]{RCA (SMHI)}}
      child[ sibling distance=9mm, norm]{node[fill=blue!20!red]{RACMO (KNMI)}}
       child[ sibling distance=9mm, norm]{node[fill=blue!20!red]{DMI HIRHAM5 (DMI)}}
}
child[ sibling distance=20mm]{node[fill=red!20]{CGCM3}
child[ sibling distance=9mm, norm]{node[fill=red!20]{CRCM (OURANOS)}}
}
child[ sibling distance=26.7mm]{node[fill=yellow]{BCM}
child[ sibling distance=9mm, norm]{node[fill=yellow]{RCA (SMHI)}}
child[ sibling distance=9mm, norm]{node[fill=yellow]{HIRHAM (METNO)}} 
}
child[ sibling distance=25.05mm]{node[fill=green]{ARPEGE}
   child[ sibling distance=9mm, norm]{node[fill=green]{HIRHAM (DMI)}}
    child[ sibling distance=9mm, norm]{node[fill=green]{Aladin (CNRM)}} 
};
\end{tikzpicture}
Leider weiss ich nicht, wie
- ich die Schriftgröße ändere
- den vertikalen Abstand ändern kann
- den horizontalen Strich in Level 2 kürzer machen kann?

Gruß, Sebi

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

- wie bei jeder node sonst auch mit dem font-key
- sibling-distance
- level-distance
\begin{tikzpicture}[level distance=50mm,
edge from parent/.style={->, draw,  thick},
every node/.style={fill=red!60,draw,inner sep=3pt, minimum width=15mm, font={\tiny}},
level 1/.style={fill=red!60,draw,inner sep=3pt, nodes={minimum width=35mm }},
level 2/.style={ nodes={minimum width=15mm }, sibling distance=7mm, level distance=40mm},
level 3/.style={sibling distance=5mm, nodes={minimum width=15mm }},
ohne/.style={edge from parent/.style={draw, thick }},
norm/.style={edge from parent/.style={->, thick,draw}}
]
\node{SRES A1B}[edge from parent fork  right, grow=right] 
child[ sibling distance=35mm]{ node[fill=blue!45]{HadCM} 
   child[ norm]{node[fill=blue!45]{RCA3 (C4I)}} 
    child[ norm]{node[fill=blue!45]{RCA (SMHI)}} 
     child[ norm]{node[fill=blue!45]{PROMES (UCLM)}} 
      child[ norm]{node[fill=blue!45]{HIRHAM (METNO)}} 
       child[ norm]{node[fill=blue!45]{HadRM3Q3 (HC)}} 
        child[ norm]{node[fill=blue!45]{HadRM3Q16 (HC)}} 
         child[ norm]{node[fill=blue!45]{HadRM3Q0 (HC)}} 
          child[ norm]{node[fill=blue!45]{CLM (ETHZ)}} 
} 
child[ sibling distance=25mm]{ node[fill=blue!20!red]{ECHAM5} 
   child[ norm]{node[fill=blue!20!red]{REMO (MPI)}} 
    child[ norm]{node[fill=blue!20!red]{RegCM (ICTP)}} 
     child[ norm]{node[fill=blue!20!red]{RCA (SMHI)}} 
      child[ norm]{node[fill=blue!20!red]{RACMO (KNMI)}} 
       child[ norm]{node[fill=blue!20!red]{DMI HIRHAM5 (DMI)}} 
} 
child[ sibling distance=30mm]{node[fill=red!20]{CGCM3} 
child[ norm]{node[fill=red!20]{CRCM (OURANOS)}} 
} 
child[ sibling distance=11mm]{node[fill=yellow]{BCM} 
child[ norm]{node[fill=yellow]{RCA (SMHI)}} 
child[ norm]{node[fill=yellow]{HIRHAM (METNO)}} 
} 
child[ sibling distance=14mm]{node[fill=green]{ARPEGE} 
   child[ norm]{node[fill=green]{HIRHAM (DMI)}} 
    child[ norm]{node[fill=green]{Aladin (CNRM)}} 
}; 
\end{tikzpicture}

[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Antworten