TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

Anschlussfrage zu

https://texwelt.de/wissen/fragen/22892/pgfplots-patch-table-plot-mehrfache-beschriftung-bei-nodes-near-coords-durch-patch-table-with-point-meta


Im o.g. Thread wird eine Mehrfachbennung von nodes near coords durch eine Schleifenmethode von @murmeltier verwendet.

Ich möchte hierbei die Koordinatentabelle um einen Anker für die Textposition erweitern.

Öffne in Overleaf
% Koordinatentabelle
    table[header=true, x index=1, y index=2, row sep=\\] {
    Nr x y  Testposition\\
    0 0 0     south        \\  % 0. Aliaspunkt. SOLL:  south als Default
    1 1 0                    \\
    2 0 1       north       \\ % Ausnahme
    3 1 1                      \\ 
    };

Leider wird dabei nur letzte angebene Anker verwendet north. Eigentlich sollen die nodes near coords standardmäßig oberhalb der Punkte stehen, nur in angegeben Ausnahmefällen unterhalb.

alt text

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

% Methode festlegen, die Mehrfachplatzierung (je nach Pfadanzahl) 
% von Punktbezeichnungen verhindert ============
\xdef\LstPN{0}
\newif\ifDupe
\pgfplotsset{avoid dupes/.code={\Dupefalse
\foreach \X in \LstPN
{\pgfmathtruncatemacro{\itest}{ifthenelse(\X==\punktnummer,1,0)
% Geht natürlich nicht
%\pgfmathsetmacro{\Ankertest}{ifthenelse(\anker="north","north","south")
}
\ifnum\itest=1
\global\Dupetrue
\breakforeach
\fi}
\ifDupe
% auskommentieren: 
\typeout{\punktnummer\space ist\space ein\space Duplikat!}%
\xdef\punktnummer{} %macht mehrfache Nummern einfach unsichtbar
%\pgfkeysalso{/tikz/anchor=\anker} % geht auch nicht
\else
\xdef\LstPN{\LstPN,\punktnummer}
\fi}}
% ============

\begin{document}

\begin{tikzpicture}
\begin{axis}[hide axis]
\addplot+[
table/row sep=newline, 
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  \\
%0 0 \\
1 1 \\
2 2 \\
3 3  \\% Bis hierhin ok....
1 3 \\% Ab hier wird überschrieben
1 2  \\
},
%
% Beschriftung
visualization depends on={value \thisrowno{0} \as \punktnummer},
visualization depends on={value \thisrowno{3} \as \anker},
every node near coord/.append style={
%anchor=\anker,
/pgfplots/avoid dupes,% Methode für Mehrfachplatzierung anwenden
},
nodes near coords={\punktnummer, \anker},
% Geht nicht
nodes near coords style={
anchor=\anker
},
]
% Koordinatentabelle
table[header=true, x index=1, y index=2, row sep=\\] {
Nr x y  Testposition\\
0 0 0     south        \\  % 0. Aliaspunkt. SOLL:  south als Default
1 1 0                    \\
2 0 1       north       \\ % Ausnahme
3 1 1                      \\ 
};
\end{axis}
\end{tikzpicture}
\end{document}

gefragt 17 Sep '18, 20:36

cis's gravatar image

cis
9.3k21214372
Akzeptiert-Rate: 29%

bearbeitet 18 Sep '18, 22:11

Ja, dann geht es "nur so". Aber das kann höchstens noch @Murmeltier, weil es eine einfache Ergänzung seines Unterprogramms sein dürfte; ich die ich gerade nicht komme.

(18 Sep '18, 19:59) cis

Ich habe nodes near coords={\punktnummer, \anker} ergänzt damit das Problem sichtbar wird.

(18 Sep '18, 22:11) cis
Das erste sein, diese Frage zu beantworten!
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:

×273
×69
×8
×3

gestellte Frage: 17 Sep '18, 20:36

Frage wurde gesehen: 1,149 Mal

zuletzt geändert: 19 Sep '18, 20:24