Einfaches Pfeildiagramm

Tabellen und Grafiken erstellen und anordnen


Caraboules
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Sa 21. Nov 2015, 12:21

Einfaches Pfeildiagramm

Beitrag von Caraboules »

Guten Abend zusammen,

ich möchte ein einfaches Pfeildiagramm erstellen (siehe Skizze als PDF "RAAS.pdf").
Mittlerweile habe ich begriffen, dass man eine Art Matrix bauen muss. Im Groben und Ganzen bekomme ich das auch hin. Leider kann ich in der Beschriftung keinen Umbruch machen und mir wird immer ein Stück des Bildes am Seitenrand abgeschnitten. Ich würde mich über Hilfe freuen.

Vielen Dank, Michael
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[arrow, matrix, curve]{xy}

\begin{document}



\begin{xy}
  \xymatrix @=1cm {
      & Freisetzung~von~Renin \ar[d]  & & & & & &\\
      Angiotensinogen \ar[rr]   & &  Angiotensin~I \ar[dd]^{ACE} & & & &\\
      & ACE-Hemmer \ar[r] & & & & & &\\
      & & Angiotensin~II \ar[lldd] \ar[ldd] \ar[dd] \ar[rdd] & & & & &\\
      Sartane \ar[r] & & & & & & &\\
      Engstellung~der~Blutgefaesse &ADH &Durst &Aldosteronausschuettung & &\\
      & & & & & & & &
  }
\end{xy}


\end{document}
[/code]
Dateianhänge
RAAS.pdf
(164.79 KiB) 469-mal heruntergeladen

Beobachter

Eine rein grafische Darstellung

Beitrag von Beobachter »

Solche Diagramme sind wesentlich einfacher und auch flexibler mit »PGF/TikZ« zu erstellen. Sollte das Diagramm zu breit sein, hilft eine Anpassung der Maße. Ein Blick in die Anleitung schadet auch nicht.
\documentclass[11pt,border=2pt]{standalone} 
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß}
}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document} 
  \begin{tikzpicture}[>=stealth]
    \node (at) at (0,0) {Angiotensinogen};
    \node[right=5cm of at] (at-i) {Angiotensin I};
    \draw[->] (at) -- (at-i) node[midway,above,font=\small] {Freisetzung von Renin};
    \node[below=3cm of at-i] (at-ii) {Angiotensin II};
    \draw[<-] (at-ii) -- (at-i) node[name=ace,midway,right,font=\small] {ACE};
    \node[left=1cm of ace,font=\small] (ace-h) {ACE"=Hemmer};
    \draw[->,shorten >=3pt] (ace-h) to[bend left] (ace);
    \node[below left=2cm and 3cm of at-ii,text width=3cm] (eng) {Engstellung der Blutgefäße};
    \node[below left=2cm and 1cm of at-ii] (adh) {ADH};
    \node[below=2cm of at-ii] (durst) {Durst};
    \node[below right=2cm and 1cm of at-ii,text width=3cm] (aldo) {Ausschüttung von Aldosteron};
    \draw[<-] (eng) -- (at-ii) node[midway,above,sloped,font=\small] {Sartane};
    \draw[->] (at-ii) -- (adh);
    \draw[->] (at-ii) -- (durst);
    \draw[->] (at-ii) -- (aldo);
  \end{tikzpicture}
\end{document}
Ein auf »PSTricks« basierendes Paket sollte ähnliche Möglichkeiten bieten.

Bild

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Alternativ kann man mit TikZ auch eine Matrix zum Platzieren nutzen:
\documentclass[11pt,border=2pt]{standalone} 
\usepackage[T1]{fontenc} 
\usepackage{selinput} 
\SelectInputMappings{ 
   adieresis={ä}, 
   germandbls={ß} 
} 
\usepackage[ngerman]{babel} 
\usepackage{tikz} 
\usetikzlibrary{matrix} 

\begin{document} 
\begin{tikzpicture}[>=stealth,font=\small]
\matrix[
  matrix of nodes,
  nodes={align=left},
  row sep=2cm,
  column sep=1cm,
](m){
  && Angiotensin I&[-1cm] \\
  && Angiotensin II \\
  |[text width=2.5cm]|Engstellung der Blutgefäße & ADH & Durst 
      & |[text width=2.5cm]|Ausschüttung von Aldosteron\\
};
  % Node oben links mit Pfeil und Beschriftung
  \draw[->](m-3-1|-m-1-3) node[anchor=east]{Angiotensinogen}
    --node[above]{Freisetzung von Renin }(m-1-3);
  % weitere Pfeile und Beschriftungen
  \path 
    (m-2-3) 
      edge[<-] node[right](ace){ACE} node[left=1cm](ace-h){ACE-Hemmer} (m-1-3)
      edge[->]node[above,sloped]{Sartane} (m-3-1) 
      {foreach \i in {2,...,4} {edge[->] (m-3-\i)}}
  ;
  % gebogener Pfeil
  \draw[->,shorten >=5pt] (ace-h) to[bend left] (ace);
\end{tikzpicture} 
\end{document} 

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Ich habe mich mit meinen sehr begrenzten TikZ-Kenntnissen mit tikz-cd versucht. Dass es schöner geht, zeigen die beiden Vorgängerposts.
\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{tikz-cd}
\usetikzlibrary{babel}
\begin{document}

\begin{tikzcd}[
	row sep=small,
	column sep=small,
	math mode=false,
	arrow style=tikz,
	>=stealth,
	labels={font=\footnotesize}
]
& \parbox{.16\linewidth}{\raggedright\footnotesize Freisetzung von Renin}\arrow[d] & \\
Angiotensinogen \arrow [rr] & {}                             & Angiotensin I\arrow[dd,"ACE"]\\
& \footnotesize ACE-Hemmer\arrow[r,bend left]            & {}\\
	                          &                              & Angiotensin II
	\arrow[dll,"Sartane" description]
	\arrow[dl]
	\arrow[d]
	\arrow[dr]
	\\
	\parbox{.2\linewidth}{\raggedright Engstellung der Blutgefäße}  & ADH & Durst & \parbox{.18\linewidth}{\raggedright Aldosteron"-ausschüttung} \\
\end{tikzcd}

\end{document}
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Caraboules
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Sa 21. Nov 2015, 12:21

Beitrag von Caraboules »

Hallo Zusammen,

danke ersteinmal für Eure Antworten und die Vorschläge.
Ich werde mich morgen ersteinmal reinfuchsen um nachzuvollziehen, was wie gemacht wurde. Als blutiger Latex-Anfänger arbeite ich noch oft nach dem Try&Error Verfahren und kenne die vielen Varianten noch nicht ;-) .
Aber ich bin schwer begeistert und werde die Lösungen entsprechend verarbeiten.

Vielen Dank nochmals, Gruß, Michael

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Hallo Michael,

ich verwende TikZ auch für sehr komplexe Zeichnungen. Das mit LaTeX zu machen ist toll. Erst recht, wenn man mehrere ähnliche Sachen macht. Makros, Stile, Schleifen, ... wenn ich eine Dokumentation mit X Netzwerk-Diagrammen habe, tune ich nur einen Stil und alle Zeichnungen passen sich an.

Stefan

Samuel

Beitrag von Samuel »

Diese Frage ist fast die Antwort auf meine Frage.

Allerdings ist mir nicht ganz klar, mit welchen Befehlen Beobachter den Pfeilen sagt, dass sie nicht ganz bis die Schrift gehen sollen.

Wenn ich

\draw[->] (at-ii) -- (adh);

verwende, dann geht der Pfeil bis exakt zum Punkt A und stoppt nicht vorher.

Falls diese Frage nicht einfach so beantwortet werden kann, erstelle ich später in einem neuen Thread ein Minimalbeispiel.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Hallo Samuel!

Der Pfeil sollte schon von vornherein nicht bis in die Schrift hinein gehen, denn ein Node mit Text hat einen Außenrand, an dem der Pfeil enden würde. Irgendwas machst Du daher anders. Im Bild oben geht der Pfeil ja auch nicht in die Schrift.

Generell kann man natürlich Pfeile kürzen. Z.B.
\draw[->, shorten >=10pt] (at-ii) -- (adh);
Du kannst ruhig einen neuen Thread für jede eigene Frage erstellen, auch wenn es ähnlich ist. Man kann ja hierher verlinken. So sieht man Deine Frage besser als am Ende einer alten Frage.

Stefan

Samuel

Beitrag von Samuel »

Vielen Dank Stefan. Es funktioniert mit deinen Kürzungsbefehl

Das Problem entsteht dadurch, dass viele Pfeile auf den gleichen Punkt hinweisen.

Antworten