如何限制 TikZ 中函数的范围?

如何限制 TikZ 中函数的范围?

我有这样的代码:

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}
    \draw [->,thick] (-5,0) -- (5,0) node[right] {$x$};
    \draw [->,thick] (0,-5) -- (0,5) node[above] {$y$};
    \draw[ultra thick, domain=-5:5] plot (\x, {pow(\x,2)-5});
\end{tikzpicture}
\end{document}

当我绘制这个时,抛物线远远超出了我想要的面积。有没有办法限制函数 f(x)=x^2-5 的范围以适应坐标区域,即仅显示 y 坐标在 -5 和 5 之间的点?

答案1

\clip您可以在绘图之前添加:

\documentclass[tikz, border=5mm]{standalone}

\begin{document}
  \begin{tikzpicture}
    \draw [->,thick] (-5,0) -- (5,0) node[right] {$x$};
    \draw [->,thick] (0,-5) -- (0,5) node[above] {$y$};
    \clip (-5,-5) rectangle (5,5);
    \draw[ultra thick, domain=-5:5] plot (\x, {pow(\x,2)-5});
  \end{tikzpicture}
\end{document}

渲染图像

答案2

虽然 Ti 的内部情节功能Z 非常适合绘制简单的图,我建议使用 PGFPlots 包绘制更高级的图。您可以找到手册这里,以及一个漂亮的画廊,其中有一切你可以想到这里

使用 PGFPlots,你的图表看起来如下:

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}    

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    width=6cm,
    height=6cm,
    title={A test plot},
    xlabel={x},
    ylabel={y},
    axis lines=middle, 
    domain=-5:5,
    samples=100,
    xmin=-5, xmax=5,
    ymin=-5, ymax=5
]

    \addplot[black, ultra thick] {pow(x,2)-5};

\end{axis}
\end{tikzpicture}
\end{document}

默认情况下,PGFPlots 会在轴周围绘制一个矩形(参见示例页面)。要为轴添加单条线,请使用axis lines=middle

使用\pgfplotsset{compat=1.13},您可以告诉 PGFPlots 使用版本 1.13。我建议您将此值设置为最新的值。只要您使用的版本 >= 1.11,您就可以使用正常的 Ti\draw (0,0) -- (1,1);使用与图中相同的Z 命令(如)和坐标。

结果:

结果

答案3

如果你的 LaTeX 安装能够调用 Gnuplot 作为外部程序,你可以替换

\draw[ultra thick, domain=-5:5] plot (\x, {pow(\x,2)-5});

经过

\draw[ultra thick] plot[domain=-5:5, yrange=-5:5] function{x*x-5};

请参阅TikZ/PGF手动的。

相关内容