alt text

Ich habe hier Punktkoordinaten

Öffne in Overleaf
Nr. x   y
0 -1.23 4.58     
1 -1.23 4.58 
2 -2.01 3.95 
3 -1.07 3.59 
4 -1.85 2.96 
5 -2.78 3.32

(Die oberste Zeile enthält Fantasiewerte, da pgfplots von 0 an zählt.)

Diese versehe ich mit Namen P-1, P-2, .... durch every node near coord/.append style={name=#1-\coordindex}

Und zeichne später Verbindungslinien mit Schleifen:

Öffne in Overleaf
\foreach \n in {2,3} \draw (P-1) -- (P-\n);
\foreach \n in {1} \draw (P-2) -- (P-\n);
.....

(Die nodes near coords muss ich dann leer lassen und auch mit Schleifen benennen, da sonst die Striche zu den nodes, nicht zu den Punkten gehen)

Das kann bei 100 Koordinatenpaaren 100 Schleifen bedeuten. Hat jmd. vielleicht eine Idee, wie man das zusammenfassen kann?

Günstig wäre ein Tabelle des Typs:

Öffne in Overleaf
Nr. x   y          Verbindungspunkte Nr.
0 -1.23 4.58     
1 -1.23 4.58       2  3
2 -2.01 3.95       1
3 -1.07 3.59       3  2  4
4 -1.85 2.96       4  2  3
5 -2.78 3.32       4  2  3

Vollständiges MWE:

Öffne in Overleaf
\documentclass[margin=5mm, tikz]{standalone}
\usepackage{pgfplots}

\pgfplotsset{compat=1.13,
name nodes near coords/.style={
every node near coord/.append style={
name=#1-\coordindex,
inner sep=0pt, outer sep=0.5pt,
}}}

\begin{document}

\begin{tikzpicture}[]

\begin{axis}[hide axis,
x =15mm, y=15mm,
nodes near coords,
]

% Punkte
\addplot+ [name nodes near coords=P,
nodes near coords={\coordindex}, % Leere node setzen
only marks,
mark size=1.125pt,
] table[header=false, x index=1, y index=2] {%
0 -1.23 4.58
1 -1.23 4.58
2 -2.01 3.95
3 -1.07 3.59
4 -1.85 2.96
5 -2.78 3.32
};
\end{axis}

% Zeichnen der Linienzüge
\foreach \n in {2,3} \draw (P-1) -- (P-\n);
\foreach \n in {1} \draw (P-2) -- (P-\n);
\foreach \n in {3,2,4} \draw (P-3) -- (P-\n);
\foreach \n in {4,2,3} \draw (P-4) -- (P-\n);
\foreach \n in {4,2,3} \draw (P-5) -- (P-\n);

\end{tikzpicture}

\end{document}

gefragt 27 Aug '18, 11:33

cis's gravatar image

cis
9.5k74452491
Akzeptiert-Rate: 29%

\draw (P-1) -- (P-2) -- (P-5) -- (P-4) -- (P-2) -- (P-3) -- (P-5); \draw (P-4) -- (P-3) -- (P-1);

(27 Aug '18, 14:41) Community

Du musst das ein wenig umfangreicher sehen. Normalerweise haben diese Tabellen hunderte Einträge.

(27 Aug '18, 15:05) cis
3

Du wirst auch bei 100en von Einträgen nicht umhin kommen, zu sagen, welche Punkte verbunden werden sollen, ausser Du hast eine Vorschrift dafür. Ausserdem war das lediglich ein Kommentar, der sagt, dass es auch kürzer geht....

(27 Aug '18, 16:28) Community

Auf jeden Fall wäre es übersichtlicher, wenn die Verbindungen auch in der Datentabelle angegeben sind. Wenn ich wüsste, wie man darauf zugreifen kann, müssten es am Schluss ggf. nur noch zwei verschachtelte Schleifen sein, für das Zeichnen der Verbindungslinien.

(27 Aug '18, 19:18) cis

Patchplots macht genau das: definiere Vertices und kombiniere sie zu Flächen. Siehe z.B. das Beispiel auf S. 469. Es sollte möglich sein, darauf aufzubauen.

(27 Aug '18, 19:34) Community

Ähm, wie heißt die Überschrift? Ist das irgendwas mit hist und data?

(27 Aug '18, 20:11) cis

In dem manual von pgfplots 1.16 ist es das letzte Beispiel vor Abschnitt 5.9.2.

(28 Aug '18, 01:55) Community

Du meinst vermutlich das mit dieser patch table with point meta. Puh, ganz schön schwierig zu verstehen.

(28 Aug '18, 08:12) cis

Ok, ich glaube, ich komme langsam dahinter

(28 Aug '18, 08:46) cis
Ergebnis 5 von 9 show 4 more comments

Mit dem Hinweis von @Murmeltier auf den patch plot ist das Problem hier, mit einigen Kniffen, lösbar. Dazu habe ich noch ein paar Fragen in neuen Threads.

alt text

Öffne in Overleaf
\documentclass[margin=5mm, tikz]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{patchplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
colormap={mymap}{rgb=(0,0,0); rgb=(0,0,0)}, % damit Kanten schwarz
]
\addplot+[
% Punkte
mark size=1.125pt, mark options={red}, 
% Kanten
thick, 
%draw=blue,  % Tut nicht
% Beschriftung
% visualization depends on={{aaa}  \as \test},
%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
patch table with point meta={%
Startpkt Endpkt colordata \\%colordata weglassen, dann vermutl. autom. 0
1 2 \\% 
1 0 \\
1 7 \\
2 4  \\
3 4  \\
4 6  \\
5 4  \\
6 4 \\
7 7 \\ % Kein Strich
}
]
table[header=true, x index=1, y index=2] {
Nr. x y \\
0 0 2 \\%0
1 2 2 \\%1
2 0 1 \\%2
3 0 0 \\%3
4 1 0 \\%4
5 2 0 \\%5
6 2 0 \\%6
7 1 1 \\%7
};
% replicate the vertex list to show \coordindex:
\addplot[only marks,
nodes near coords=\coordindex,
every node near coord/.append style={
text=blue
},
]
table[row sep=\\] {
0 2 \\%0
2 2 \\%1
0 1 \\%2
0 0 \\%3
1 0 \\%4
2 0 \\%5
2 0 \\%6
1 1 \\%7
};
\end{axis}
\end{tikzpicture}

\end{document}
Permanenter link

beantwortet 28 Aug '18, 10:55

cis's gravatar image

cis
9.5k74452491
Akzeptiert-Rate: 29%

bearbeitet 28 Aug '18, 10:56

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×296

gestellte Frage: 27 Aug '18, 11:33

Frage wurde gesehen: 3,266 Mal

zuletzt geändert: 28 Aug '18, 10:56