Die Frage ist zum Archivieren gedacht, kein Support benötigt. Ich beantworte die Frage auch selbst. Antworten im Sinne von Verbesserungs- und Vereinfachungsvorschlägen sind sind jedoch sehr willkommen! Die Abbildungen zeigen sogen. Streichholzgraphen. Hierbei gibt es drei Herausforderungen:
gefragt 29 Aug '18, 20:20 cis |
Die folgende Lösung mit Öffne in Overleaf
1. Die Platzierung der Punkte (hier als vorhandener externer Datensatz angenommen) 2. Die Angabe der Verbindungskanten 3. Die geeignete Platzierung der Beschriftungen (keine Überlappungen o.ä.) hat aber den Nachteil, dass die Koordinatentabelle Öffne in Overleaf
Nr x y Textposition \\ 0 0 0 south \\% Default 1 -1.23 4.58 \\ 2 -2.01 3.95 \\ 3 -1.07 3.59 north \\% Änderung 4 -1.85 2.96 south \\% Default wiederholen 5 -2.78 3.32 \\ .... zweimal angegeben werden muss: einmal für die Koordinatenpunkte, einmal für die Beschriftungen. Das ist nicht unbedingt elegant, aber wird bereits im Handbuchbeispiel für 'patch plots polygon' so gemacht, daher schätze ich, dass es zur Zeit keine kürzere Lösung gibt (pgfplots 1.16, letztes Beispiel vor Abschnitt 5.9.2). (Überdies erlaubt pgfplots hier zur Zeit scheints nur inlinetables.) Ansonsten können im patch-Plot die Verbindungen bequem in der Form Öffne in Overleaf
patch table with point meta={% Startpkt Endpkt colordata \\%colordata weglassen, dann vermutl. autom. 0 1 1 \\ 2 1 \\ 3 1 \\ 3 2 \\ 4 3 \\ ... ... } eingegeben werden. Vollständiges MWE: Öffne in Overleaf
%\documentclass[]{article} \documentclass[margin=5mm, tikz]{standalone} \usepackage{pgfplots} \usepgfplotslibrary{patchplots} \pgfplotsset{compat=1.13} \begin{document} % Allgemeine Angaben \pgfplotsset{ x=15mm, y=15mm, % Maßstab % Oder Bildmaße % width=20cm, % height=5cm, } \begin{tikzpicture} \begin{axis}[hide axis, colormap={Kantenfarbe}{color=(gray) color=(gray)}, ] \addplot+[ % Punkte mark size=1.125pt, mark options={red}, % Kanten thick, % Beschriftung --> hier nicht möglich %nodes near coords=\coordindex, % TUT -hier- NICHT! table/row sep=\\, % Muss wohl so sein!? % patch, % Plot-Typ patch type=polygon, vertex count=2, % damit nur Kanten, keine Flächen, gezeichnet werden % % Angabe der Verbindungskanten ===================== patch table with point meta={% Startpkt Endpkt colordata \\%colordata weglassen, dann vermutl. autom. 0 1 1 \\ 2 1 \\ 3 1 \\ 3 2 \\ 4 3 \\ 4 2 \\ 4 43 \\ 5 4 \\ 5 2 \\ 5 37 \\ 6 1 \\ 7 1 \\ 7 6 \\ 8 7 \\ 8 6 \\ 9 7 \\ 9 8 \\ 10 9 \\ 10 8 \\ 11 9 \\ 11 10 \\ 12 11 \\ 13 11 \\ 13 12 \\ 14 13 \\ 14 12 \\ 15 13 \\ 15 14 \\ 16 15 \\ 17 15 \\ 17 16 \\ 18 17 \\ 18 16 \\ 19 17 \\ 19 18 \\ 20 19 \\ 21 19 \\ 21 20 \\ 22 21 \\ 22 20 \\ 23 21 \\ 23 22 \\ 24 23 \\ 25 23 \\ 25 24 \\ 26 25 \\ 26 24 \\ 27 25 \\ 27 26 \\ 28 27 \\ 28 26 \\ 29 27 \\ 29 28 \\ 29 31 \\ 30 31 \\ 30 29 \\ 31 33 \\ 32 33 \\ 32 31 \\ 32 30 \\ 33 33 \\ 34 35 \\ 34 33 \\ 34 36 \\ 35 33 \\ 36 37 \\ 36 35 \\ 36 38 \\ 37 35 \\ 38 5 \\ 38 37 \\ 39 32 \\ 39 30 \\ 40 34 \\ 40 39 \\ 41 39 \\ 41 28 \\ 42 41 \\ 42 24 \\ 42 22 \\ 43 38 \\ 43 40 \\ 44 41 \\ 44 42 \\ 44 49 \\ 44 51 \\ 45 6 \\ 45 3 \\ 46 14 \\ 46 12 \\ 46 48 \\ 47 18 \\ 47 16 \\ 48 10 \\ 48 45 \\ 48 50 \\ 49 45 \\ 49 43 \\ 49 40 \\ 50 47 \\ 50 46 \\ 50 51 \\ 51 20 \\ 51 47 \\ } % Angabe der Verbindungskanten ===================== ] table[header=true, x index=1, y index=2, row sep=\\] { Nr x y Textposition \\ 0 0 0 south \\ 1 -1.23 4.58 \\ 2 -2.01 3.95 \\ 3 -1.07 3.59 north \\ 4 -1.85 2.96 south \\ 5 -2.78 3.32 \\ 6 -0.97 3.62 \\ 7 -0.27 4.32 \\ 8 -0.01 3.36 \\ 9 0.70 4.06 \\ 10 0.96 3.10 \\ 11 1.67 3.81 \\ 12 1.34 2.86 \\ 13 2.32 3.05 \\ 14 1.99 2.10 \\ 15 2.97 2.29 \\ 16 2.04 1.93 north \\ 17 2.81 1.30 south \\ 18 1.88 0.95 \\ 19 2.66 0.31 \\ 20 1.66 0.43 \\ 21 2.06 -0.49 \\ 22 1.06 -0.37 \\ 23 1.46 -1.29 \\ 24 0.96 -0.42 north \\ 25 0.46 -1.28 south \\ 26 -0.04 -0.41 \\ 27 -0.54 -1.28 \\ 28 -1.04 -0.41 north \\ 29 -1.54 -1.27 south \\ 30 -1.16 -0.35 \\ 31 -2.15 -0.48 \\ 32 -1.77 0.44 \\ 33 -2.76 0.32 \\ 34 -1.90 0.82 \\ 35 -2.77 1.32 \\ 36 -1.90 1.82 \\ 37 -2.77 2.32 \\ 38 -1.91 2.82 north \\ 39 -0.77 0.57 south \\ 40 -1.16 1.50 \\ 41 -0.08 -0.14 \\ 42 0.66 0.54 north \\ 43 -0.97 2.48 south \\ 44 -0.30 0.83 \\ 45 -0.81 2.63 \\ 46 1.01 1.92 \\ 47 1.10 1.58 \\ 48 0.18 2.48 \\ 49 -0.21 1.83 \\ 50 0.11 1.48 \\ 51 0.69 0.67 \\ }; % Beschriftungen ============================ % Laut Handbuch "replicate the vertex list to show \coordindex" % Anzeigen des 0. Aliaspunktes verhindern: \newcommand\Punktnummer{\pgfmathparse{\punktnummer>0 ? \punktnummer : ""}\pgfmathresult} \addplot[ only marks, visualization depends on={value \thisrowno{0} \as \punktnummer}, visualization depends on={value \thisrowno{3} \as \Anker}, nodes near coords={\Punktnummer}, % every node near coord/.append style={ font=\scriptsize, %\sffamily text=black, anchor=\Anker }, ] table[header=true, x index=1, y index=2, row sep=\\] { Nr x y Textposition \\ 0 0 0 south \\ 1 -1.23 4.58 \\ 2 -2.01 3.95 \\ 3 -1.07 3.59 north \\ 4 -1.85 2.96 south \\ 5 -2.78 3.32 \\ 6 -0.97 3.62 \\ 7 -0.27 4.32 \\ 8 -0.01 3.36 \\ 9 0.70 4.06 \\ 10 0.96 3.10 \\ 11 1.67 3.81 \\ 12 1.34 2.86 \\ 13 2.32 3.05 \\ 14 1.99 2.10 \\ 15 2.97 2.29 \\ 16 2.04 1.93 north \\ 17 2.81 1.30 south \\ 18 1.88 0.95 \\ 19 2.66 0.31 \\ 20 1.66 0.43 \\ 21 2.06 -0.49 \\ 22 1.06 -0.37 \\ 23 1.46 -1.29 \\ 24 0.96 -0.42 north \\ 25 0.46 -1.28 south \\ 26 -0.04 -0.41 \\ 27 -0.54 -1.28 \\ 28 -1.04 -0.41 north \\ 29 -1.54 -1.27 south \\ 30 -1.16 -0.35 \\ 31 -2.15 -0.48 \\ 32 -1.77 0.44 \\ 33 -2.76 0.32 \\ 34 -1.90 0.82 \\ 35 -2.77 1.32 \\ 36 -1.90 1.82 \\ 37 -2.77 2.32 \\ 38 -1.91 2.82 north \\ 39 -0.77 0.57 south \\ 40 -1.16 1.50 \\ 41 -0.08 -0.14 \\ 42 0.66 0.54 north \\ 43 -0.97 2.48 south \\ 44 -0.30 0.83 \\ 45 -0.81 2.63 \\ 46 1.01 1.92 \\ 47 1.10 1.58 \\ 48 0.18 2.48 \\ 49 -0.21 1.83 \\ 50 0.11 1.48 \\ 51 0.69 0.67 \\ }; % Beschriftungen ============================ \end{axis} \end{tikzpicture} \end{document} beantwortet 29 Aug '18, 20:20 cis |