Etiquetar una asíntota inclinada

Etiquetar una asíntota inclinada

Estoy usando TikZ y pgfplots por primera vez. (Lo estoy usando para poder enviar notas de clase a los estudiantes de una clase de Cálculo que estoy enseñando). Tengo una gráfica con una asíntota inclinada. Antes de poder usar pgfplots para el gráfico, necesito algunos ajustes solo para las líneas del gráfico.

Vi en otra publicación que shorten <=2ex, shorten >=2exacortaría una línea en cada extremo en 2ex. Este comando acortó la línea vertical pero no la línea inclinada. Quiero puntas de flecha en ambas líneas; están en la línea vertical pero no en la línea inclinada. Quiero que las líneas estén etiquetadas en la misma dirección que las líneas... pero fuera de la línea. Entonces, necesito mover una etiqueta hacia arriba y otra hacia la derecha. Como arctan(3/2) = 56,31 grados, utilicé rotate=56.31en las opciones para el nodo. ¿Existe un comando "inclinado" para dibujar dichas etiquetas en la misma dirección que la línea? Una cosa más. La etiqueta "y" para el eje y está demasiado cerca de la línea vertical x=3/2. ¿Cómo ajusto su posición? (Tampoco me gusta la posición de la "x" para el eje x).

\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}

Respuesta1

La razón por la que los shortencomandos no parecen funcionar de manera confiable es porque no puedes ver los finales de las líneas: están fuera del área de la trama y están recortadas. Para ver las líneas completas, agregue clip=falsea sus axisopciones.

Yo abordaría esto de manera diferente: en lugar de usar \drawcomandos, puedes usar gráficos "reales" con el \addplotcomando. De esta manera, puedes especificar las ecuaciones directamente, en lugar de tener que calcular de antemano el ángulo de rotación.

\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}

Respuesta2

Puedes usar la slopedopción en lugar de calcular el ángulo:

ingrese la descripción de la imagen aquí

Notas:

  • También reemplacé las fracciones de listones con a \fracporque creo que se ve mucho mejor.
  • Para obtener las etiquetas de los ejes en las puntas, puedes usar el Axis Labels At Tipestilo que extraje deCómo escalar correctamente una imagen TikZ/PGF que tiene un `\begin{axis}...\end{axis}`.
  • La razón por la que no había puntas de flecha en ambos extremos se puede ver si configura clip=false. Las líneas estaban mucho más allá del rango mostrado. Por lo tanto, puede editar las coordenadas para que los puntos finales de las líneas estén dentro del rango o simplemente aumentar la cantidad con la que acorta la línea. En el MWE a continuación aumenté las shortencantidades porque era más sencillo que calcular las coordenadas apropiadas para mantener la misma pendiente y posición.

Código:

\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}

información relacionada