Tikz 图表中不需要的线

Tikz 图表中不需要的线

我为我的学生制作了一个学习指南(我们正在学习有理函数),在创建涉及图表的键时,我遇到了一个奇怪的错误。在我的图表中,有一条不需要的线,y=-1但我在 tex 代码中没有看到任何可以创建它的东西。有人能向我解释一下发生了什么吗?

我在这里的时候,还有另外两个问题需要整理一下图表

  1. 我如何让 tikz 显示轴上每个刻度的其他标签?例如,列出所有标签-9,...,9会使图表变得混乱,而列出标签-9,-7,...,9会使图表更易于阅读。
  2. 有没有一种简洁的方法来创建虚线渐近线?我可以创建它们,但它们看起来一点也不简洁。
\documentclass[11pt]{article}

\usepackage{amsfonts, colonequals, amsthm, amsmath, amssymb, mathrsfs, amscd, pgfplots, multicol, geometry}

\pgfplotsset{my style/.append style={axis x line=middle, axis y line=middle, xlabel={$x$}, ylabel={$y$}, axis equal }}

\geometry{textwidth=6.3in,textheight=9in}

\parindent=0in
\pagestyle{empty}

\begin{document}

Find \textbf{all} intercepts and asymptotes of \(F(x)=\frac{2x^2+16x-18}{x^2+x-6}\) and sketch a graph of \(F(x)\).\\

\(x\)-intercepts: \((-9,0), (1,0)\)\hspace{1cm} \(y\)-intercept: \((0,3)\)\hspace{1cm} VA: \(x=-3,2\)\hspace{1cm} HA: \(y=2\)

\begin{center}
\begin{tikzpicture}
\begin{axis}[my style, xtick={-9,-8,...,9}, ytick={-6,-5,...,6},xmin=-10, xmax=10,  ymin=-7, ymax=7]
\addplot[domain=-9.1:-3.1,samples=256] {(2*x^2+16*x-18)/(x^2+x-6)};
\addplot[domain=-2.9:1.9,samples=256] {(2*x^2+16*x-18)/(x^2+x-6)};
\addplot[domain=2.1:9.1,samples=256] {(2*x^2+16*x-18)/(x^2+x-6)};
\end{axis}
\end{tikzpicture}
\end{center}

\end{document}

答案1

下面显示了该图的两个略有不同的版本。

关于渐近线,虚线就是虚线,我不太清楚你画的那些“不整齐”是什么意思。无论如何,你可以使用

\draw [dashed] (axis cs:-3,\pgfkeysvalueof{/pgfplots/ymin}) -- 
               (axis cs:-3,\pgfkeysvalueof{/pgfplots/ymax});

其中\pgfkeysvalueof{/pgfplots/ymin}是访问轴下限的一种方法,因此不必明确写出它。ymaxxmin、类似xmax。 坐标“前缀”axis cs:是必需的,因为pgfplots不使用轴坐标\draw等。除非你已经compat=1.11(或更新的版本)在\pgfplotsset序言中(见为什么 tikzpicture 在添加到文档内部时会被破坏)。

在下面的第一张图中,我在渐近线中添加了节点/引脚,以指示值,这主要是因为我为该函数使用了更宽的域。(这只是一个想法,您可以根据需要忽略它。)引脚使用的数字,例如200pin={200:$x=-3$}是一个角度,它表示的方向pin

对于刻度位置,当您执行时a,b,...,c,用于填充其余系列的步骤由定义b-a,因此如其他地方所提到的,使用xtick={-9,-7,...,9}来获取您所指示的 x 刻度。

其他事项:declare function对于需要多次使用相同函数的情况很方便,如果您想对所有图使用相同数量的样本,则在选项中设置它会更方便axis。切勿使用\\来结束段落。我添加了parskip包,而不是仅仅将设置\parindent为零。

\documentclass[11pt]{article}
\usepackage{
  amsfonts,
  colonequals,
  amsthm,
  amsmath,
  amssymb,
  mathrsfs,
  amscd,
  pgfplots,
  multicol,
  geometry
}

\pgfplotsset{
  my style/.append style={
    axis x line=middle,
    axis y line=middle,
    xlabel={$x$},
    ylabel={$y$},
    axis equal
  }
}

\geometry{textwidth=6.3in,textheight=9in}

\usepackage{parskip} % better than just setting zero parindent

\pagestyle{empty}

\begin{document}

Find \emph{all} intercepts and asymptotes of \(F(x)=\frac{2x^2+16x-18}{x^2+x-6}\) and sketch a graph of \(F(x)\).

\(x\)-intercepts: \((-9,0), (1,0)\)\hfill
\(y\)-intercept: \((0,3)\) \hfill
VA: \(x=-3,2\)\hfill
HA: \(y=2\)

\begin{center}
\begin{tikzpicture}[
  declare function={F(\x)=(2*\x^2+16*\x-18)/(\x^2+\x-6);},
  every pin edge/.append style={solid} % otherwise the pin edges are dashed
]
\begin{axis}[
  my style,
  xmin=-15, xmax=15,
  ymin=-7, ymax=7,
  clip mode=individual,
  samples=50
]
\addplot[domain=-15:-3.1] {F(x)};
\addplot[domain=-2.9:1.9] {F(x)};
\addplot[domain=2.1:15] {F(x)};

\draw [dashed] (axis cs:-3,\pgfkeysvalueof{/pgfplots/ymin}) -- 
               (axis cs:-3,\pgfkeysvalueof{/pgfplots/ymax})
          coordinate[pos=0.9,pin={200:$x=-3$}](a);
\draw [dashed] (axis cs:2,\pgfkeysvalueof{/pgfplots/ymin}) -- 
               (axis cs:2,\pgfkeysvalueof{/pgfplots/ymax}) 
          coordinate[pos=0.9,pin={20:$x=2$}](a);

\draw [dashed] (axis cs:\pgfkeysvalueof{/pgfplots/xmin},2) -- 
               (axis cs:\pgfkeysvalueof{/pgfplots/xmax},2) node[right]{$y=2$};

\end{axis}
\end{tikzpicture}

\begin{tikzpicture}[
  declare function={F(\x)=(2*\x^2+16*\x-18)/(\x^2+\x-6);},
]
\begin{axis}[
  my style,
  xtick={-9,-7,...,9},
  ytick={-6,-4,...,6},
  xmin=-10, xmax=10,
  ymin=-7, ymax=7,
  clip mode=individual,
  samples=50
]
\addplot[domain=-9.1:-3.1] {F(x)};
\addplot[domain=-2.9:1.9] {F(x)};
\addplot[domain=2.1:9.1] {F(x)};

\draw [dashed] (axis cs:-3,\pgfkeysvalueof{/pgfplots/ymin}) -- 
               (axis cs:-3,\pgfkeysvalueof{/pgfplots/ymax});

\draw [dashed] (axis cs:2,\pgfkeysvalueof{/pgfplots/ymin}) -- 
               (axis cs:2,\pgfkeysvalueof{/pgfplots/ymax}); 

\draw [dashed] (axis cs:\pgfkeysvalueof{/pgfplots/xmin},2) -- 
               (axis cs:\pgfkeysvalueof{/pgfplots/xmax},2);

\end{axis}
\end{tikzpicture}
\end{center}

\end{document}

代码生成的图表

相关内容