我为我的学生制作了一个学习指南(我们正在学习有理函数),在创建涉及图表的键时,我遇到了一个奇怪的错误。在我的图表中,有一条不需要的线,y=-1
但我在 tex 代码中没有看到任何可以创建它的东西。有人能向我解释一下发生了什么吗?
我在这里的时候,还有另外两个问题需要整理一下图表
- 我如何让 tikz 显示轴上每个刻度的其他标签?例如,列出所有标签
-9,...,9
会使图表变得混乱,而列出标签-9,-7,...,9
会使图表更易于阅读。 - 有没有一种简洁的方法来创建虚线渐近线?我可以创建它们,但它们看起来一点也不简洁。
\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}
是访问轴下限的一种方法,因此不必明确写出它。ymax
、xmin
、类似xmax
。 坐标“前缀”axis cs:
是必需的,因为pgfplots
不使用轴坐标\draw
等。除非你已经compat=1.11
(或更新的版本)在\pgfplotsset
序言中(见为什么 tikzpicture 在添加到文档内部时会被破坏)。
在下面的第一张图中,我在渐近线中添加了节点/引脚,以指示值,这主要是因为我为该函数使用了更宽的域。(这只是一个想法,您可以根据需要忽略它。)引脚使用的数字,例如200
,pin={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}