我正在尝试绘制是= 秒(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}