从 y=sec(x) 中去除渐近线

从 y=sec(x) 中去除渐近线

我正在尝试绘制= 秒(X ), 见下文

\begin{tikzpicture}[scale=1]
\begin{axis}[ymax=10,ymin=-10]
\addplot[color=red,domain=-360:360,samples=101,unbounded coords=jump]
{sec(x)};
\draw[ultra thin] (axis cs:0,\pgfkeysvalueof{/pgfplots/ymin}) -- (axis 
cs:0,\pgfkeysvalueof{/pgfplots/ymax});
\draw[ultra thin] (axis cs:\pgfkeysvalueof{/pgfplots/xmin},0) -- (axis 
cs:\pgfkeysvalueof{/pgfplots/xmax},0);
\end{axis}
\end{tikzpicture}

输出结果如下:

在此处输入图片描述

我该如何去除其中的垂直红线?

答案1

你可以这样做:

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}[scale=1]
\begin{axis}[ymax=10,ymin=-10]
\addplot[color=red,domain=-360:360,samples=400,restrict y to domain=-15:15]
{sec(x)};
\draw[ultra thin] (axis cs:0,\pgfkeysvalueof{/pgfplots/ymin}) -- (axis 
cs:0,\pgfkeysvalueof{/pgfplots/ymax});
\draw[ultra thin] (axis cs:\pgfkeysvalueof{/pgfplots/xmin},0) -- (axis 
cs:\pgfkeysvalueof{/pgfplots/xmax},0);
\end{axis}
\end{tikzpicture}
\end{document}

使用该选项restrict y to domain=-10:10应该可以得到您想要的结果...但样本必须非常大才能实现...所以我将其更改为-15:15并稍微增加了样本。输出结果与没有渐近线的您的结果类似。

答案2

那么按 90 度域段绘制图形怎么样?

    \documentclass[tikz, margin=3mm]{standalone}
    \usepackage{pgfplots}
    \pgfplotsset{compat=1.15}

    \begin{document}
\begin{tikzpicture}
\begin{axis}[
    ymax=10,ymin=-10,
    samples=30
            ]
    \foreach \i in {-360,-270,...,270}
\addplot[color=red,domain=\i:\i+90] {sec(x)};
\draw[ultra thin]
    (0,\pgfkeysvalueof{/pgfplots/ymin}) -- (0,\pgfkeysvalueof{/pgfplots/ymax})
    (\pgfkeysvalueof{/pgfplots/xmin},0) -- (\pgfkeysvalueof{/pgfplots/xmax},0);
\end{axis}
\end{tikzpicture}
    \end{document}

在此处输入图片描述

相关内容