TikZ Baum-Diagramm Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


brisi
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Di 7. Nov 2017, 09:40

TikZ Baum-Diagramm

Beitrag von brisi »

Hallo Zusammen,
ich würde gerne ein «Baum-Modell» zeichnen (siehe Abb.). Leider schaffe ich es nicht abgehende Linien auf der "Grundlinie" zu platzieren.
\documentclass{standalone}
\usepackage{url}
\usepackage{tikz}
\usepackage{color}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[scale=2.0]
	% Draw axes
	\draw [<->,thick] node[left] {$fr\ddot{u}her$} (0,2) node (yaxis) [above] {$Zeit$}
	|- (2.5,0) node (xaxis) [right] {$Ver\ddot{a}nderung$};
	% time today
	\draw [dashed] (0,1.5) node[left] {$heute$} -- (2.4,1.5);
	% Species
	\draw [-, line width=0.2mm, red] (1.1,0) -- (1.8,1.5);
	\draw [-, line width=0.2mm, red] 

	% Titel
	\node[above,font=\large\bfseries] at (current bounding box.north) (t3) {Selektionstheorie};
	\node[below=1ex,font=\small\bfseries] at (t3) {Charles Darwin};
\end{tikzpicture}
\end{document}
Vielen Dank für Eure Hilfe!
Dateianhänge
Evo-Konzepte.jpg

ich meine ja nur

Re: TikZ Baum-Diagramm

Beitrag von ich meine ja nur »

Mal ganz davon abgesehen, dass das Beispiel leider nicht lauffähig ist, $fr\ddot{u}her$, $Zeit$ und $fr\ddot{u}her$ sind hoffentlich nicht ernst gemeint. Wenn doch: Du bastelst da Produkte, was man an dem fehlenden Kerning sehr gut erkennen kann. Wenn du Text kursiv setzen möchtest, lies bitte \textit und \emph in einer guten LaTeX-Einführung oder min. im fntguide nach.

Pakete mehrfach zu laden ist ebenfalls Unfug, der dich früher oder später in die LaTeX-Hölle bringt. Und zusätzlich zu tikz, das bekanntlich bereits xcolor lädt, auch noch color zu laden, ist natürlich auch überflüssig.

Ich weiß jetzt auch nicht, was genau dein Problem ist. Steigungen auszurechnen? Was erwartest du dir? So etwas:
\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[scale=2.0]
	% Draw axes
	\draw [<->,thick] node[left] {\textit{früher}} (0,2) node (yaxis) [above] {\emph{Zeit}}
	|- (2.5,0) node (xaxis) [right] {\textit{Veränderung}};
	% time today
	\draw [dashed] (0,1.5) node[left] {\emph{heute}} -- (2.4,1.5);
	% Species
	\draw [-, line width=0.2mm, red] (1.1,0) -- (1.8,1.5);
	\draw (1.5,0.86) -- (1.0,1.5);

	% Titel
	\node[above,font=\large\bfseries] at (current bounding box.north) (t3) {Selektionstheorie};
	\node[below=1ex,font=\small\bfseries] at (t3) {Charles Darwin};
\end{tikzpicture}
\end{document}
?
Linien jedenfalls kann man beliebig viele zeichnen. Man kann auch direkt Berechnungen mit pgfmath durchführen. Für Schnittpunkte ist ggf. Abschnitt 101.5.4 Points of the Intersection of Lines der pgf-Anleitung von Interesse.

ich meine ja nur

Re: TikZ Baum-Diagramm

Beitrag von ich meine ja nur »

Achso: Wie immer, wenn es im Bäume geht, könnte auch die Tree Library (siehe pgf-Anleitung, Kapitel 76) oder
TeXample als Ausgangspunkt von Interesse sein. Muss aber nicht.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: TikZ Baum-Diagramm

Beitrag von Bartman »

@brisi Mit der Option font kann man auch die Schrift mehrerer Knoten einstellen:
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}[>=Latex,scale=2]
	% Draw axes
	\begin{scope}[font=\itshape]
	\draw [<->,thick] node [left] {früher} (0,2) node (yaxis) [above] {Zeit}
	|- (2.5,0) node (xaxis) [right] {Veränderung};
	% time today
	\draw [dashed] (0,1.5) node[left] {heute} -- (2.4,1.5);
	\end{scope}
	% Species
	\draw [line width=0.2mm, red] (1.1,0) -- (1.8,1.5);
	\draw (1.5,0.86) -- (1.0,1.5);
    
	% Titel
	\node[above,font=\bfseries\large] at (current bounding box.north) (t3) {Selektionstheorie};
	\node[below=1ex,font=\bfseries\small] at (t3) {Charles Darwin};
\end{tikzpicture}
\end{document}

brisi
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Di 7. Nov 2017, 09:40

Re: TikZ Baum-Diagramm

Beitrag von brisi »

@Bartman & @ich meine ja nur
Vielen herzlichen Dank für Eure Inputs! Ich habe jetzt mit den linearen Funktionen die Schnittpunkte berechnet und so die abgehenden Linien definiert -- wahrscheinlich nicht sehr elegant. Hier meine drei Beispiele:
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[>=Latex,scale=2]
	    % Kursiv geschrieben
    \begin{scope}[font=\itshape]
    	% Draw axes
	\draw [<->,thick] node [left] {früher} (0,2) node (yaxis) [above] {Zeit}
	|- (2.5,0) node (xaxis) [right] {Veränderung};
		% time today
	\draw [dashed] (0,1.5) node[left] {heute} -- (2.4,1.5);
	\end{scope}
	% Species
	\draw [->, line width=0.15mm, red] (0.25,0) node[below] {1} -- (0.25,1.5);
	\draw [->, line width=0.15mm, red] (0.65,0) node[below] {2} -- (0.65,1.5);
	\draw [->, line width=0.15mm, red] (1.05,0) node[below] {3} -- (1.05,1.5);
	\draw [->, line width=0.15mm, red] (1.45,0) node[below] {4} -- (1.45,1.5);
	\draw [->, line width=0.15mm, red] (1.85,0) node[below] {5} -- (1.85,1.5);
	% Titel
	\node[above,font=\large\bfseries] at (current bounding box.north) (t1) {Konstanz der Arten};
	\node[below=1ex,font=\small\bfseries] at (t1) {Carl von Linné};
\end{tikzpicture}

\begin{tikzpicture}[>=Latex,scale=2]
	    % Kursiv geschrieben
\begin{scope}[font=\itshape]
	% Draw axes
	\draw [<->,thick] node [left] {früher} (0,2) node (yaxis) [above] {Zeit}
	|- (2.5,0) node (xaxis) [right] {Veränderung};
	% time today
	\draw [dashed] (0,1.5) node[left] {heute} -- (2.4,1.5);
\end{scope}
	% Species
	\draw [->, line width=0.15mm, red] (0.25,0) node[below] {1} -- (0.7,1.5);
	\draw [->, line width=0.15mm, red] (0.65,0) node[below] {2} -- (1.1,1.5);
	\draw [->, line width=0.15mm, red] (1.05,0) node[below] {3} -- (1.5,1.5);
	\draw [->, line width=0.15mm, red] (1.45,0) node[below] {4} -- (1.9,1.5);
	\draw [->, line width=0.15mm, red] (1.85,0) node[below] {5} -- (2.3,1.5);
	% Titel
	\node[above,font=\large\bfseries] at (current bounding box.north) (t2) {Transformationstheorie};
	\node[below=1ex,font=\small\bfseries] at (t2) {Jean-Baptist de Lamarck};
\end{tikzpicture}
\begin{tikzpicture}[>=Latex,scale=2]
		        % Kursiv geschrieben
		\begin{scope}[font=\itshape]
				% Draw axes
			\draw [<->,thick] node [left] {früher} (0,2) node (yaxis) [above] {Zeit}
			|- (2.5,0) node (xaxis) [right] {Veränderung};
			    % time today
			\draw [dashed] (0,1.5) node[left] {heute} -- (2.4,1.5);
		\end{scope}
	
		% Species
		\draw [line width=0.2mm, red] (1.1,0) -- (1.8,1.5) node [above] {6´}; %Line 1 
		\draw [line width=0.2mm, red] (1.3,0.43) -- (0.4,1.5) node [above] {1}; %Line 1.1 (unten)
		     \draw [line width=0.2mm, red] (0.8,1.02) -- (0.9,1.5) node [above] {3}; %Line 1.1.1
		     \draw [line width=0.2mm, red] (0.85,1.26) -- (0.65,1.5) node [above] {2}; %Line 1.1.1.1
		     \draw [dashed, line width=0.2mm, red] (1.0,0.79) -- (1.2,1.0); %Line 1.1.2
		     \draw [dashed, line width=0.2mm, red] (1.2,0.55) -- (0.8,0.7); %Line 1.1.3
		\draw [line width=0.2mm, red] (1.5,0.86) -- (1.0,1.5) node [above] {4}; %Line 1.2 (oben)
			 \draw [line width=0.2mm, red] (1.2,1.24) -- (1.4,1.5) node [above] {5}; %Line 1.2.1
			 \draw [dashed, line width=0.2mm, red] (1.35,1.05) -- (1.0,1.2); %Line 1.2.2
		\draw [dashed, line width=0.2mm, red] (1.2,0.21) -- (1.7,0.5);
		\draw [dashed, line width=0.2mm, red] (1.6,1.07) -- (2.0,1.3);
		\draw [dashed, line width=0.2mm, red] (1.6,1.07) -- (2.0,1.3);
		% Titel
		\node[above,font=\bfseries\large] at (current bounding box.north) (t3) {Selektionstheorie};
		\node[below=1ex,font=\bfseries\small] at (t3) {Charles Darwin};
	\end{tikzpicture}
\end{document}
Lässt sich da aus Eurer Sich noch was optimieren? Für jeden Hinweis dankbar!!!

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: TikZ Baum-Diagramm

Beitrag von Bartman »

Du darfst die Optionen auch mit der Hilfe der edge-Operation aus dem Abschnitt 17.12.1 "Basic Syntax of the Edge Operation" zusammenfassen.

Ein Beispiel an einem Ausschnitt des Quelltextes der dritten Zeichnung über die "Selektionstheorie":
% Species
\path [line width=0.2mm, red, at end] 
	(1.1,0) edge node [above] {6´} (1.8,1.5) %Line 1 
	(1.3,0.43) edge node [above] {1} (0.4,1.5) %Line 1.1 (unten)
		(0.8,1.02) edge node [above] {3} (0.9,1.5) %Line 1.1.1
		(0.85,1.26) edge node [above] {2} (0.65,1.5) %Line 1.1.1.1
;

brisi
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Di 7. Nov 2017, 09:40

Re: TikZ Baum-Diagramm

Beitrag von brisi »

@Bartman Du hast bei tikzpicture die Option ">=Latex" eingefügt. Was macht diese Option?
brisi hat geschrieben:
Fr 4. Feb 2022, 10:17
\begin{tikzpicture}[>=Latex,scale=2]

gast.

Re: TikZ Baum-Diagramm

Beitrag von gast. »

Damit wird die Form der Pfeilspitzen festgelegt. Näheres ist tikz-Anleitung zu entnehmen (siehe u. a. die Erklärung zur Arrow Tip Library in Abschnitt 16.5).

brisi
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Di 7. Nov 2017, 09:40

Re: TikZ Baum-Diagramm

Beitrag von brisi »

gast. hat geschrieben:
Fr 4. Feb 2022, 15:36
Damit wird die Form der Pfeilspitzen festgelegt. Näheres ist tikz-Anleitung zu entnehmen (siehe u. a. die Erklärung zur Arrow Tip Library in Abschnitt 16.5).
Super Danke

Antworten