Wie kann ich einen beliebigen Punkt in einem glatten Diagramm mit der Achse verbinden?

Wie kann ich einen beliebigen Punkt in einem glatten Diagramm mit der Achse verbinden?

Ich habe eine zufällige, glatte Zeichnung (nur glatt verbundene Punkte) und möchte einen Punkt zwischen den Punkten hervorheben. Die Hervorhebung sollte durch Verbinden des Punkts im Diagramm mit seiner Koordinate auf der X-Achse erfolgen.

Hier ist ein MWE, das ich gerne so lassen würde, wie es ist

\documentclass{standalone}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
 \begin{tikzpicture}
      \begin{axis}[ytick=\empty,xtick=\empty, 
             axis on top=false,xmin=0, xmax=10, ymin=0, ymax=5, 
             axis x line=left, axis y line=left, clip=false]
      \node at (rel axis cs:1,0) [above, anchor=north west] {$x$};
      \node at (rel axis cs:0,1) [above, anchor=west] {$y$};
      \addplot[smooth] coordinates {
       (0,0)
       (2,3)
       (5,1.2)
       (5.8,4)
       (8,3.8)
       (10,3.5) 
       } coordinate [pos=.9] (prior) ;

       \end{axis}
  \end{tikzpicture}
\end{document}

Ich möchte die Koordinate mit der x-Achse verbinden, priorindem ich eine Linie parallel zur y-Achse verwende. Mein Ansatz war dieser

\draw[dotted] (prior)-- (rel axis cs:0.9,0);

Aus mir unklaren Gründen ist dies jedoch nicht die richtige Koordinate (sie liegt etwas weiter rechts). Nun frage ich mich, wie ich die richtige Koordinate ermitteln kann. Die Funktion zeichnet einen Bereich von auf, 0:10daher würden meine mathematischen Fähigkeiten davon abhängen, dass .9dies auch der Länge der x-Achse entsprechen sollte .9. Dies scheint jedoch falsch zu sein. Hat jemand eine Idee, was die richtige Koordinate ist? Oder noch einfacher: Wie kann ich den Punkt (vorher) auf dem kürzesten Weg mit der x-Achse verbinden?

Ich habe versucht, mit der in einer Antwort auf diese Frage vorgeschlagenen Lösung zu arbeiten:Glatte pgfplots. Das Problem ist, dass ich die y-Koordinate des vorherigen Punktes nicht kenne.

Der Vollständigkeit halber ist hier die Ausgabe, die es erzeugt (ohne Berücksichtigung der unterschiedlichen Beschriftungen der Achsen):

Bildbeschreibung hier eingeben

Antwort1

Sie suchen also danach?

Der Grund, warum pos=0.9dies nicht bei x=0,9 liegt, ist, dass die Koordinate tatsächlich bei 90 % der Länge der Linie liegt. Und weil es am Anfang der Linie (also bei niedrigen x-Werten) viel „auf und ab“ gibt, ist dieser Teil der Linie „länger“ als der Teil am Ende der Linie (also bei hohen x-Werten), der fast eine horizontale Gerade ist.

(Nur der Vollständigkeit halber: Wenn Sie also beabsichtigen, einen Knoten bei x=0.9 auf der Linie zu platzieren, dann ist dies derzeit nicht direkt mit der posFunktion möglich, aber es gibt bereits eine Funktionsanforderung dafür in derPGFPlots-Tracker. Aber natürlich kann dies auch indirekt erfolgen, z. B. mithilfe der intersectionsBibliothek von TikZ.)

% used PGFPlots v1.14
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{
        % use this `compat' level or higher so there is no need any more to prefix
        % TikZ coordinates with `axis cs:'
        compat=1.11,
    }
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        xtick=\empty,
        ytick=\empty,
        xmin=0,
        xmax=10,
        ymin=0,
        ymax=5,
        axis lines=center,
        % (moved the axis labels here)
        xlabel={$x$},
        ylabel={$y$},
        xlabel style={anchor=north west},
        ylabel style={anchor=north east},
    ]

        \addplot [smooth] coordinates {
            (0,0)
            (2,3)
            (5,1.2)
            (5.8,4)
            (8,3.8)
            (10,3.5)
        }
            coordinate [pos=.9] (prior)
        ;

        % to draw a vertical line from `prior' down to the x axis use the `|-' operator and state an arbitrary x value, but 0 as y value
        \draw [dotted] (prior) -- (prior |- 0,0);
    \end{axis}
\end{tikzpicture}
\end{document}

Bild, das das Ergebnis des obigen Codes zeigt

verwandte Informationen