使用 tikz 在有限范围内绘制函数

使用 tikz 在有限范围内绘制函数

我想用 tikz 绘制几个函数。其中一些函数的值增长太大。在 tikz 手册中有一个示例,其中的“好”函数不会增长太多:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[domain=0:4]
\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[color=red] plot (\x,\x) node[right] {$f(x) =x$};
\draw[color=blue] plot (\x,{sin(\x r)}) node[right] {$f(x) = \sin x$};
\draw[color=orange] plot (\x,{0.05*exp(\x)}) node[right] {$f(x) =q\frac{1}{20} \mathrm e^x$};
\end{tikzpicture}
\end{document}

如何修改它以便只显示从 -1 到 4 的 y 值(仍然),但显示的是 e^x 而不是 0.05*e^x?

我知道如果函数振荡的话这几乎是不可能的。但让我们假设我们绘制的函数只有一个局部最小值或根本没有最小值。

答案1

这就是你想要的吗?clip 技术用于剪切超出 clip 生成的窗口的曲线。请注意,clip使用 时,剪切效果应限制在 内scope。如果没有,scope剪切将继续在代码中一直生效。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[domain=0:4]
\begin{scope}                           % scope environment
\clip  (-1,-1.1) rectangle (6.9,4.9);   % This is the clip window determined by user.
\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[color=red] plot (\x,\x) node[right] {$f(x) =x$};
\draw[color=blue] plot (\x,{sin(\x r)}) node[right] {$f(x) = \sin x$};
\draw[color=orange] plot (\x,{exp(\x)}) node at (1,4) {$f(x) = \mathrm e^x$};
\end{scope}                             % scope envirnment  
\end{tikzpicture}
\end{document}

更新:添加了基于的绘制PGFPLOTS以供参考。

在此处输入图片描述

代码

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}

\begin{tikzpicture}
\begin{axis}[domain=0:4, samples=100,grid=major,
    restrict y to domain=-1:4,xlabel=$x$,ylabel=$f(x)$, legend pos=north west]
\addplot [color=red]  {x};
\addplot [color=blue] {sin(deg(x)};
\addplot [color=green]{exp(x)};
\legend{$x$,$\sin(x)$,$e^x$}
\end{axis}
\end{tikzpicture}
\end{document}

相关内容