Beschriftung einer schrägen Asymptote

Beschriftung einer schrägen Asymptote

Ich verwende TikZ und pgfplots zum ersten Mal. (Ich verwende es, damit ich den Schülern in einem von mir unterrichteten Analysiskurs Unterrichtsnotizen schicken kann.) Ich habe ein Diagramm mit einer schrägen Asymptote. Bevor ich pgfplots für das Diagramm verwenden kann, muss ich nur einige Anpassungen an den Linien im Diagramm vornehmen!

Ich habe in einem anderen Beitrag gesehen, dass shorten <=2ex, shorten >=2exeine Linie an jedem Ende um 2ex gekürzt wird. Dieser Befehl verkürzt die vertikale Linie, aber nicht die schräge Linie. Ich möchte Pfeilspitzen auf beiden Linien; sie befinden sich auf der vertikalen Linie, aber nicht auf der schrägen Linie. Ich möchte, dass die Linien in derselben Richtung wie die Linien beschriftet sind ... aber außerhalb der Linie. Also muss ich eine Beschriftung nach oben und eine Beschriftung nach rechts verschieben. Da arctan(3/2) = 56,31 Grad ist, habe ich rotate=56.31die Optionen für den Knoten verwendet. Gibt es einen „Schräg“-Befehl, um solche Beschriftungen in derselben Richtung wie die Linie zu zeichnen? Noch etwas. Die Beschriftung „y“ für die y-Achse ist zu nahe an der vertikalen Linie x=3/2. Wie passe ich ihre Position an? (Mir gefällt auch die Position des „x“ für die x-Achse nicht.)

\documentclass{amsart}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}


\begin{document}    

\begin{tikzpicture}
\begin{axis}[width=4in,axis equal image,
    axis lines=middle,
    xmin=-15,xmax=15,
    xlabel=$x$,ylabel=$y$,
    ymin=-10,ymax=10,
    restrict y to domain=-12:12,
    enlargelimits={abs=1cm},
    axis line style={latex-latex},
    ticklabel style={font=\tiny,fill=white},
    xtick={\empty},ytick={\empty},
]

\draw[dashed,latex-latex,shorten <=2ex, shorten >=2ex] (-13,-17) -- (13,22) node[right,rotate=56.31,pos=0.1]{$\scriptstyle{y=(3/2)x+5/2}$};
\draw[dashed,latex-latex,shorten <=2ex, shorten >=2ex] ({1.5,0} |- {{axis description cs:1,1}}) -- ({{1.5,0}} |- {{axis description cs:1,-1}}) node[right,rotate=90,pos=0.5]{$\scriptstyle{x=3/2}$};
\end{axis}
\end{tikzpicture}

\end{document}

Antwort1

Der Grund, warum die shortenBefehle nicht zuverlässig zu funktionieren scheinen, liegt darin, dass Sie die Enden Ihrer Linien nicht sehen können: Sie liegen außerhalb des Plotbereichs und sind abgeschnitten. Um die vollständigen Linien zu sehen, fügen Sie clip=falseIhren axisOptionen etwas hinzu.

Ich würde das anders angehen: Statt \drawBefehle zu verwenden, kann man mit dem Befehl „echte“ Plots verwenden \addplot. So kann man die Gleichungen direkt angeben, statt vorher den Winkel für die Drehung berechnen zu müssen.

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}


\begin{document}    

\begin{tikzpicture}
\begin{axis}[width=4in,axis equal image,
clip=false,
    axis lines=middle,
    xmin=-15,xmax=15,
    domain=-15:15, samples=50,
    xlabel=$x$,ylabel=$y$,
    ymin=-10,ymax=10,
    restrict y to domain=-12:12,
    enlargelimits={abs=1cm},
    axis line style={latex-latex},
    ticklabel style={font=\tiny,fill=white},
    xtick={\empty},ytick={\empty},
]

\addplot [dashed, latex-latex] {(3/2)*x+5/2} node [pos=0.25, anchor=south, font=\footnotesize, sloped] {$y=(3/2)x+5/2$};
\addplot [dashed, latex-latex] (1.5,x) node [pos=0.25, anchor=north, font=\footnotesize, sloped] {$x=3/2$};
\end{axis}
\end{tikzpicture}

\end{document}

Antwort2

slopedSie können anstelle der Winkelberechnung auch die folgende Option verwenden :

Bildbeschreibung hier eingeben

Anmerkungen:

  • Außerdem habe ich die Lamellenbrüche durch ein ersetzt, \fracda ich finde, dass das viel besser aussieht.
  • Um die Achsenbeschriftungen an den Spitzen zu erhalten, können Sie den Axis Labels At TipStil verwenden, den ich extrahiert habe ausSo skalieren Sie ein TikZ/PGF-Bild mit einer `\begin{axis}...\end{axis}` richtig.
  • Der Grund, warum es an beiden Enden keine Pfeilspitzen gab, wird deutlich, wenn Sie einstellen clip=false. Die Linien lagen weit außerhalb des angezeigten Bereichs. Sie können also entweder die Koordinaten bearbeiten, um die Endpunkte der Linien in den Bereich zu bringen, oder einfach den Betrag erhöhen, um den Sie die Linie verkürzen. Im MWE unten habe ich die shortenBeträge erhöht, da dies einfacher war, als geeignete Koordinaten zu berechnen, um dieselbe Neigung und Position beizubehalten.

Code:

\documentclass{amsart}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

%% https://tex.stackexchange.com/questions/17438/how-to-properly-scale-a-tikz-pgf-picture-which-has-a-beginaxis-endaxis
%%
\pgfkeys{/pgfplots/Axis Labels At Tip/.style={
        xlabel style={
            at={(current axis.right of origin)}, 
            xshift=1.5ex, anchor=center
        },
        ylabel style={
            at={(current axis.above origin)}, 
            yshift=1.5ex, anchor=center
        }
    }
}

\begin{document}    

\begin{tikzpicture}
\begin{axis}[width=4in,axis equal image,
    axis lines=middle,
    xmin=-15,xmax=15,
    xlabel=$x$,ylabel=$y$,
    ymin=-10,ymax=10,
    restrict y to domain=-12:12,
    enlargelimits={abs=1cm},
    axis line style={latex-latex},
    ticklabel style={font=\tiny,fill=white},
%    xtick={\empty},ytick={\empty},
    Axis Labels At Tip,
    %clip=false
]

\draw[dashed,latex-latex,shorten <=4ex, shorten >=15ex] (axis cs: -13,-17) -- (axis cs: 13,22) node[right,sloped, above,pos=0.15]{$y=\frac{3}{2}x+ \frac{5}{2} $};
\draw[dashed,latex-latex,shorten <=2ex, shorten >=2ex] ({1.5,0} |- {{axis description cs:1,1}}) -- ({{1.5,0}} |- {{axis description cs:1,0}}) node[right,rotate=90, below, pos=0.65]{$x= \frac{3}{2}$};
\end{axis}
\end{tikzpicture}

\end{document}

verwandte Informationen