alt text

Ich bestimme mit
\draw [name intersections={of=g and h, name=S, total=\t}]
die Schnittpunkte zweier Kurven.
Diese sind nun (S-1) und (S-2).

Aber mit \addplot[mark=*, mark size=1.75pt] coordinates{(S-1) (S-2)}; kann ich sie nicht einzeichnen.

Hintergrund: Ich dachte am elegantesten wäre es, die Schnittpunkte, z.B. A(-1.56,2.44), mit nodes near coords oder ähnlich eintragen.

Was könnte ich hier tun?

Code, hier editierbar zum Übersetzen:
\documentclass[border=5pt, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{amsmath, amssymb}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[font=\footnotesize,
/pgf/number format/NumberStyle/.style={
fixed, 1000 sep={,},
%precision=3,
},
]
\begin{axis}[
axis lines = middle,
axis line style = {-latex},
]
\addplot[name path=g, blue, domain=-5:4] {\x+4};
\addplot[name path=h, red, domain=-3.3:3.3] {x^2};
% Geht
\draw [name intersections={of=g and h, name=S, total=\t}] [fill=white]
\foreach \s/\Name/\Anker in {1/A/east, 2/B/west}{(S-\s) circle (2pt) node[anchor=\Anker] {
\pgfplotspointgetcoordinates{(S-\s)}
$\Name (
\pgfmathprintnumber[NumberStyle]{\pgfkeysvalueof{/data point/x}},
\pgfmathprintnumber[NumberStyle]{\pgfkeysvalueof{/data point/y}}
)$
}};
% Geht nicht
%\addplot[mark=*, mark size=1.75pt] coordinates{(S-1) (S-2)};
%\addplot[mark=*, mark size=1.75pt] coordinates{(A) (B)};
\end{axis}
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 04 Jul '19, 03:15

cis's gravatar image

cis
9.6k103460491
Akzeptiert-Rate: 29%

bearbeitet 04 Jul '19, 20:14

Ich verstehe nicht wie dieses \pgfplotspointgetcoordinates funktioniert. Ich tippe auf gar nicht. Das Beispiel

Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\node (A) at (axis cs:1,2) {};
\pgfplotspointgetcoordinates{(A)}
\end{axis}
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gibt mir

! Package pgf Error: No shape named A is known.
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

wat?

(04 Jul '19, 04:48) Henri

@Henri Laut Doku ist das Makro für die Verwendung innerhalb der Visualisationsphase gedacht. Im Code von cis sorgt es auch tatsächlich dafür, dass die Schnittpunkte mit ihren Koordinaten beschriftet werden.

(04 Jul '19, 15:25) esdd

Ja, komischer Befehl.

(04 Jul '19, 16:24) cis
1

@Henri du musst die Ausführung verzögern, z.B. mit \pgfplotsextra{\pgfplotspointgetcoordinates{(A.south)};}, oder indem du in in Stellen verwendest, die automatisch verzögern.

(04 Jul '19, 16:54) Ulrike Fischer

Ah schade, ich meinte den Befehl \addplot[] coordinates{(S-1) (S-2)};. Ich habe mich da verschrieben.

(04 Jul '19, 19:21) cis

Zu Deiner Frage besser passendes und übersichtlicheres MWE:

Code, hier editierbar zum Übersetzen:
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=0,xmax=5,ymin=0,ymax=5]
\path
(1,1)coordinate(A)
(4,3)coordinate(B)
;
%\addplot [mark=*,mark size=1.75pt] coordinates {(A) (B)};% funktioniert nicht
\end{axis}
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Zitat aus der pgfplots Doku zu \addplot coordinates {<coordinate list>};:

The coordinates can be numbers, but they can also contain mathematical expressions like sin(0.5) or \h*8 (assuming you defined \h somewhere). However, expressions which involve round braces need to be encapsulated in a further set of curly braces, for example ({sin(0.5)},{cos(0.1)}).

Mit anderen Worten: es ist nicht vorgesehen, dass in der Liste der Koordinaten zuvor definierte Punkte mit ihrem Namen auftauchen.

Du kannst aber statt dessen das bereits von TikZ bereit gestellte \draw plot coordinates {<coordinate list>}; verwenden:

Code, hier editierbar zum Übersetzen:
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=0,xmax=5,ymin=0,ymax=5]
\path
(1,1)coordinate(A)
(4,3)coordinate(B)
;
\draw plot [mark=*,mark size=1.75pt] coordinates {(A) (B)};
\end{axis}
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 04 Jul '19, 15:17

esdd's gravatar image

esdd
17.8k304257
Akzeptiert-Rate: 62%

Der Befehl \draw plot [mark=*,mark size=1.75pt] coordinates {(A) (B)};, statt \addplot[] coordinates {(A) (B)}; ist schonmal gut. Lag eigentlich nahe.

Ansonsten hatte ich so ein umständliches Beispiel gewählt, weil ich den Befehl \pgfplotspointgetcoordinates{<...>} verwenden wollte.

(04 Jul '19, 18:18) cis

Ich schätze mal, meine Methode

% Geht \draw [name intersections={of=g and h, name=S, total=\t}] [fill=white] \foreach \s/\Name/\Anker in {1/A/east, 2/B/west}{(S-\s) circle (2pt) node[anchor=\Anker] { \pgfplotspointgetcoordinates{(S-\s)} $\Name ( \pgfmathprintnumber[NumberStyle]{\pgfkeysvalueof{/data point/x}}, \pgfmathprintnumber[NumberStyle]{\pgfkeysvalueof{/data point/y}} )$ }};

geht dann nicht mehr viel einfacher...

(04 Jul '19, 19:01) cis

Halte ich für sehr wahrscheinlich, zumal es in der Doku ein analoges Beispiel gibt.

Unabhängig davon sehe ich keinen Sinn darin, warum Du \pgfplotspointgetcoordinates vorführen musst, wenn Du einfach nur wissen willst, warum \addplot [mark=*,mark size=1.75pt] coordinates {(A) (B)}; nicht funktioniert. Das bläht nur Frage und Code auf und macht es anderen Nutzern schwer, den Inhalt zu verstehen.

(05 Jul '19, 14:15) esdd
Deine Antwort
[Vorschau ausblenden]

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

Frage-Themen:

×298
×3

gestellte Frage: 04 Jul '19, 03:15

Frage wurde gesehen: 6,926 Mal

zuletzt geändert: 05 Jul '19, 14:15

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×