Tabellen und Grafiken erstellen und anordnen
DEVV
Forum-Century
Beiträge: 117 Registriert: Sa 31. Okt 2015, 17:06
Beitrag
von DEVV » Sa 25. Feb 2017, 15:00
Hallo Leute,
ich habe aktuell eine Baumdarstellung, an der ich gerne Werte an die Verbindungen schreiben würde:
\documentclass[12pt,twoside,a4paper]{article}
\usepackage{tikz}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\begin{center}
\scalebox{0.58}{
\begin{tikzpicture}[sibling distance=8em]
\tikzset{node1/.style={rectangle,rounded corners,draw=black, align=center, top color=white, bottom color=gray!20}}
\node[node1](ub) {9. output}[grow'=up]
child { node[node1] {4. str\_receiver} } ;
\node[node1][above=2em](ob) at (ub-1.north) {7. sender}[grow'=up]
child { node[node1] {5. bin\_str\_join}
child{node[node1]{3. bin\_str\_join}
child{node[node1]{2. rel\_source}
child{node{\includegraphics[width=4em]{puffer.png}}} }
child{node[node1]{0. str\_source}
child{node{\includegraphics[width=4em]{puffer.png}}} }}
child{
child[missing]
child{node[node1]{1. rel\_source}
child{node{\includegraphics[width=4em]{puffer.png}}}}}};
\path[<->,very thick,shorten <=.5ex,shorten >=.5ex](ub-1) edge node[pos=.5,right]{\includegraphics[width=3.5em]{Zeichnung.png}}(ob);
\path([xshift=2.75cm]ob-1-2.east)--++(1em,0)coordinate(h);
\draw[|-|,very thick]
(ob.south-|h)
-- node[xshift=.5cm][right]{Kernel}
(ob-1-1-1-1.north-|h)
;
\draw[|-|,very thick]
(ub-1.north-|h)
-- node[xshift=.5cm][right]{User}
(ub.south-|h)
;
\end{tikzpicture}}
\end{center}
\caption{Anfrageplan der \textbf{Netsimple-Anfrage}.}
\end{figure}
\end{document}
Es sollen Werte wie z.B. 2171,938 ∗ 10^4 an die Kanten geschrieben werden.
Bartman
Forum-Meister
Beiträge: 2456 Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz
Beitrag
von Bartman » Sa 25. Feb 2017, 16:24
Denke bitte an die nötigen
Vorkehrungen für die Pfade Deiner Grafikdateien .
Wie zentriere ich eine Abbildung oder Tabelle richtig?
Die Anwendung der \texttt-Befehle auf einen Teil der Knotenbeschriftungen finde ich passend. Es ist aber letztlich Deine Entscheidung.
Mir fällt zu Deinem Anliegen so etwas ein:
\documentclass[tikz, border=5pt]{standalone}
\usepackage[locale=DE]{siunitx}
\begin{document}
\begin{tikzpicture}[
sibling distance=8em,
node1/.style={
rectangle,
rounded corners,
draw,
align=center,
top color=white,
bottom color=gray!20
}
]
\node[node1](ub) {9. \texttt{output}}[grow'=up]
child { node[node1] {4. \texttt{str\_receiver}} } ;
\node[node1][above=2em](ob) at (ub-1.north) {7. \texttt{sender}}[grow'=up]
child { node[node1] {5. \texttt{bin\_str\_join}}
child{node[node1]{3. \texttt{bin\_str\_join}}
child{node[node1]{2. \texttt{rel\_source}}
child{node{\includegraphics[width=4em]{example-image}}}
}
child{node[node1]{0. \texttt{str\_source}}
child{node{\includegraphics[width=4em]{example-image}}}
}
edge from parent node[left=2mm] {\num{2171,938e4}}
}
child{
child[missing]
child{node[node1]{1. \texttt{rel\_source}}
child{node{\includegraphics[width=4em]{example-image}}}
}
edge from parent node[right=2mm] {\num{2171,938e4}}
}
};
\path[<->,very thick,shorten <=.5ex,shorten >=.5ex](ub-1) edge node[pos=.5,right]{\includegraphics[width=3.5em]{example-image}}(ob);
\path([xshift=2.75cm]ob-1-2.east)--++(1em,0)coordinate(h);
\draw[|-|,very thick]
(ob.south-|h)
-- node[xshift=.5cm][right]{Kernel}
(ob-1-1-1-1.north-|h)
;
\draw[|-|,very thick]
(ub-1.north-|h)
-- node[xshift=.5cm][right]{User}
(ub.south-|h)
;
\end{tikzpicture}
\end{document}
Zuletzt geändert von
Bartman am Di 16. Jan 2018, 02:32, insgesamt 1-mal geändert.
DEVV
Forum-Century
Beiträge: 117 Registriert: Sa 31. Okt 2015, 17:06
Beitrag
von DEVV » Sa 25. Feb 2017, 20:22
Okay danke, wie bekomme ich denn einen Text links neben den Doppelpfeil?
Bartman
Forum-Meister
Beiträge: 2456 Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz
Beitrag
von Bartman » Sa 25. Feb 2017, 20:57
DEVV hat geschrieben: Okay danke, wie bekomme ich denn einen Text links neben den Doppelpfeil?
\path[<->,very thick,shorten <=.5ex,shorten >=.5ex](ub-1)
edge node[pos=.5,right]{\includegraphics[width=3.5em]{example-image}}
node[pos=.5,left]{Text}(ob);
DEVV
Forum-Century
Beiträge: 117 Registriert: Sa 31. Okt 2015, 17:06
Beitrag
von DEVV » So 26. Feb 2017, 12:25
Okay danke. Und wie schaffe ich es etwas zwischen den puffer.png und den ersten Knoten zu schreiben (also auch an der Verbindung). Ich schaffe das nicht bei allen...
Bei der Kante von dem Bild zu 2. funktioniert es, bei der Kante von dem Bild zu 1. gibt es einen Fehler:
\begin{figure}[t]
\begin{center}
\scalebox{0.68}{
\begin{tikzpicture}[sibling distance=8em]
\tikzset{node1/.style={rectangle,rounded corners,draw=black, align=center, top color=white, bottom color=gray!20}}
\node[node1](ub) {9. output}[grow'=up]
child { node[node1] {4. str\_receiver}
edge from parent node[left=2mm] {$1882,563*10^1$}
} ;
\node[node1][above=2em](ob) at (ub-1.north) {7. sender}[grow'=up]
child { node[node1] {5. bin\_str\_join}
child{node[node1]{3. bin\_str\_join}
child{node[node1]{2. rel\_source}
child{node{\includegraphics[width=4em]{puffer.png}}
edge from parent node[left=2mm] {$\mathbf{5579,215*10^4}$}
}
}
child{node[node1]{0. str\_source}
child{node{\includegraphics[width=4em]{puffer.png}}}
edge from parent node[right=2mm] {$8600,473$}
}
edge from parent node[left=2mm] {$3403,057$}
}
child{
child[missing]
child{node[node1]{1. rel\_source}
child{node{\includegraphics[width=4em]{puffer.png}}
edge from parent node[right=0mm] {$\mathbf{2171,938*10^4}$}
}
}}
edge from parent node[left=2mm]{$1627,428$}
};
\path[<->,very thick,shorten <=.5ex,shorten >=.5ex](ub-1)
edge node[pos=.5,right]{\includegraphics[width=3.5em]{Zeichnung.png}}
node[pos=.5,left]{$\mathbf{7973,254*10^4}$}(ob);
\path([xshift=2.75cm]ob-1-2.east)--++(1em,0)coordinate(h);
\draw[|-|,very thick]
(ob.south-|h)
-- node[xshift=.5cm][right]{Kernel}
(ob-1-1-1-1.north-|h)
;
\draw[|-|,very thick]
(ub-1.north-|h)
-- node[xshift=.5cm][right]{User}
(ub.south-|h)
;
\end{tikzpicture}}
\end{center}
\end{figure}
Bartman
Forum-Meister
Beiträge: 2456 Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz
Beitrag
von Bartman » So 26. Feb 2017, 15:04
DEVV hat geschrieben: Und wie schaffe ich es etwas zwischen den puffer.png und den ersten Knoten zu schreiben (also auch an der Verbindung). Ich schaffe das nicht bei allen...
Bei der Kante von dem Bild zu 2. funktioniert es, bei der Kante von dem Bild zu 1. gibt es einen Fehler:
Abgesehen von der Fehlermeldung durch die Leerzeile, wird Deine Beschriftung zwischen der Puffer-Abbildung und 1. angezeigt.
\documentclass[tikz, border=5pt]{standalone}
\begin{document}
\begin{tikzpicture}[sibling distance=8em]
\tikzset{node1/.style={rectangle,rounded corners,draw=black, align=center, top color=white, bottom color=gray!20}}
\node[node1](ub) {9. output}[grow'=up]
child { node[node1] {4. str\_receiver}
edge from parent node[left=2mm] {$1882,563*10^1$}
} ;
\node[node1][above=2em](ob) at (ub-1.north) {7. sender}[grow'=up]
child { node[node1] {5. bin\_str\_join}
child{node[node1]{3. bin\_str\_join}
child{node[node1]{2. rel\_source}
child{node{\includegraphics[width=4em]{example-image}}
edge from parent node[left=2mm] {$\mathbf{5579,215*10^4}$}
}
}
child{node[node1]{0. str\_source}
child{node{\includegraphics[width=4em]{example-image}}}
edge from parent node[right=2mm] {$8600,473$}
}
edge from parent node[left=2mm] {$3403,057$}
}
child{
child[missing]
child{node[node1]{1. rel\_source}
child{node{\includegraphics[width=4em]{example-image}}
edge from parent node[right] {$\mathbf{2171,938*10^4}$}
}
% Die Leerzeile erzeugt ohne Kommentarzeichen eine Fehlermeldung
}}
edge from parent node[left=2mm]{$1627,428$}
};
\path[<->,very thick,shorten <=.5ex,shorten >=.5ex](ub-1)
edge node[pos=.5,right]{\includegraphics[width=3.5em]{example-image}}
node[pos=.5,left]{$\mathbf{7973,254*10^4}$}(ob);
\path([xshift=2.75cm]ob-1-2.east)--++(1em,0)coordinate(h);
\draw[|-|,very thick]
(ob.south-|h)
-- node[xshift=.5cm][right]{Kernel}
(ob-1-1-1-1.north-|h)
;
\draw[|-|,very thick]
(ub-1.north-|h)
-- node[xshift=.5cm][right]{User}
(ub.south-|h)
;
\end{tikzpicture}
\end{document}
DEVV
Forum-Century
Beiträge: 117 Registriert: Sa 31. Okt 2015, 17:06
Beitrag
von DEVV » So 26. Feb 2017, 19:35
Tausend Dank, es waren wirklich die Leeren Zeilen. Hätte ich nicht gedacht...
Eine letzte Frage habe ich: Wie schaffe ich, dass der Text von der Höhe her genau mittig neben der Linie haben möchte ? Bei der Verbindung von 1 nach 5 ist der Text nämlich zu weit oben.
Bartman
Forum-Meister
Beiträge: 2456 Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz
Beitrag
von Bartman » So 26. Feb 2017, 21:54
DEVV hat geschrieben: Wie schaffe ich, dass der Text von der Höhe her genau mittig neben der Linie haben möchte ? Bei der Verbindung von 1 nach 5 ist der Text nämlich zu weit oben.
In meinem Lösungsversuch benutze ich die Option pos.
child{
child[missing]
child{node[node1]{1. rel\_source}
child{node{\includegraphics[width=4em]{example-image}}
edge from parent node[right] {$\mathbf{2171,938*10^4}$}
}
% Die Leerzeile erzeugt ohne Kommentarzeichen eine Fehlermeldung
}
edge from parent node[pos=1, right=2mm] {Text}% <- eingefügt
}