[TikZ] Netzgraph erstellen und automatisch positionieren

Tabellen und Grafiken erstellen und anordnen


sippi
Forum-Anfänger
Forum-Anfänger
Beiträge: 20
Registriert: Fr 13. Jul 2012, 17:15

[TikZ] Netzgraph erstellen und automatisch positionieren

Beitrag von sippi »

Hallo,

ich möchte einen gerichteten Netzgraphen mit TikZ zeichnen.
Die Knoten und Kanten des Graphen sollen im Idealfall von TikZ weitestgehend selbstständig positioniert werden (wenn das geht?).

Die Knoten sollen schwarz umrandet werden und unabhängig von der Beschriftung immer die gleiche Größe haben. Sprich die Schriftgröße sollte entsprechend angepasst werden.
Die Kanten sollen Pfeilfen mit gefüllten Pfeilspitzen entsprechen.

Das nachfolgende Minimalbeispiel zeigt meinen aktuellen Stand und meine gewünschte Graphtopologie.
\documentclass[]{article}
\usepackage{tikz}
\usepackage{tikz,fullpage}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{scope}[every node/.style={circle,thin,draw}]
    \node (R) at (0, 0) {R}; 
    \node (A) at (-2, 0.5) {A};
    \node (B) at (-2, 1.4) {B};
    \node (C) at (-2, 2.3) {C};
	\node (D) at (0, 4) {D};
	\node (E) at (-1, 2.5) {E};
	\node (F) at (1, 2.5) {F};
    \node (G) at (1.5, 1.5) {G};
    \node (H) at (2.1, 1.2) {HHH};
    \node (I) at (1.5, 0.5) {I};
\end{scope}


	\begin{scope}[every path/.style={->}]
 		\path (A) edge[bend right=10] node {} (R);
 		\path (B) edge[bend left=30] node {} (R);
 		\path (C) edge[bend right=30] node {} (R);
 		\path (D) edge[bend right=5] node {} (E);
 		\path (D) edge[bend right=10] node {} (R);
 		\path (D) edge[bend left=5] node {} (F);
 		\path (G) edge[bend right=5] node {} (R);
 		\path (H) edge[bend right=5] node {} (I);
 		\path (H) edge[bend right=5] node {} (R);
 		\path (I) edge[bend left=5] node {} (R);
 		\path (E) edge[bend left=5] node {} (R);
 		\path (F) edge[bend left=5] node {} (R);
 		\path (F) edge[bend left=5] node {} (R);
    \end{scope}  
\end{tikzpicture}
\end{center}
\end{document}
Ich bin mir ziemlich sicher, dass mein Weg umständlich ist.
Gibt es daher eine einfachere Lösung, meinen Graphen zu zeichnen :? ?

VG