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, 05:33

cis's gravatar image

cis
8.3k16171267
Akzeptiert: 69%

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

(27 Aug, 08:41) Murmeltier

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

(27 Aug, 09: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, 10:28) Murmeltier

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, 13: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, 13:34) Murmeltier

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

(27 Aug, 14:11) cis

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

(27 Aug, 19:55) Murmeltier

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

(28 Aug, 02:12) cis

Ok, ich glaube, ich komme langsam dahinter

(28 Aug, 02:46) cis
Ergebnis 5 von 9 Alle anzeigen

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, 04:55

cis's gravatar image

cis
8.3k16171267

bearbeitet 28 Aug, 04:56

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×261

Frage gestellt: 27 Aug, 05:33

Frage wurde angeschaut: 247 Mal

Zuletzt aktualisiert: 28 Aug, 04:56