標記傾斜漸近線

標記傾斜漸近線

我是第一次使用 TikZ 和 pgfplots。 (我使用它是為了向我正在教授的微積分課上的學生發送課堂筆記。)我有一個帶有傾斜漸近線的圖表。在我可以使用 pgfplots 繪製圖表之前,我需要對圖表中的線條進行一些調整!

我在另一篇文章中看到,shorten <=2ex, shorten >=2ex將每一端的一行縮短 2ex。此指令縮短垂直線,但不縮短斜線。我想要兩條線上都有箭頭;它們在垂直線上,但不在斜線上。我希望標記的線與線的方向相同......但偏離線。因此,我需要向上移動一個標籤,向右移動一個標籤。由於 arctan(3/2) = 56.31 度,我rotate=56.31在節點的選項中使用了它。是否有“傾斜”命令用於沿與線相同的方向繪製此類標籤?還有一件事。 y 軸的標籤「y」距離垂直線 x=3/2 太近。如何調整它的位置? (我也不喜歡 x 軸的「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}

答案1

這些命令似乎無法可靠工作的原因shorten是因為您看不到線條的末端:它們位於繪圖區域之外,並且被剪掉了。要查看完整的行,請新增clip=false到您的axis選項。

我會以不同的方式處理這個問題:\draw您可以使用命令來使用“真實”繪圖,而不是使用命令\addplot。這樣,您可以直接指定方程,而不必事先計算旋轉角度。

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

答案2

您可以使用該sloped選項而不是計算角度:

在此輸入影像描述

筆記:

  • 我還用 a 替換了板條分數,\frac因為我認為這樣看起來更好。
  • 要取得提示處的軸標籤,您可以使用Axis Labels At Tip我從中提取的樣式如何正確縮放具有 `\begin{axis}...\end{axis}` 的 TikZ/PGF 圖片
  • 之所以兩端沒有箭頭,只要設定一下就可以看出clip=false。這些線條遠遠超出了顯示範圍。因此,您可以編輯座標以使線條的端點進入範圍,或只是增加縮短線條的量。在下面的 MWE 中,我增加了shorten數量,因為這比計算適當的座標以保持相同的坡度和位置更簡單。

代碼:

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

相關內容