我需要在 0 到 1000 的 x 范围内显示一个函数。以下代码有效:
\begin{tikzpicture}
\def\xmax{200}
\def\ymax{1}
\begin{scope}[yshift=-2.7cm, domain=0:\xmax, >=latex, yscale=1, xscale=0.05]
\draw[very thin,color=gray,xstep=10.0cm] (-0.1,-1.1) grid (\xmax,3.9);
\draw[thick, ->] (-0.2,0) -- (\xmax.2,0) node[right] {$x$};
\draw[thick, ->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[thick, smooth, color=blue] plot (\x,{sin(\x r)}) node[right] {$f(x) = \sin x$};
\end{scope}
\end{tikzpicture}
然而范围在0..200
。我以为通过增加\xmax
和减少xscale
我可以控制最终的图像但是只要我超过我总是会出现错误\def\xmax{200}
。
如何实现这一点?
编辑
根据建议,我尝试使用:
\begin{scope}[samples=400, yshift=-2.7cm, domain=0:\xmax, >=latex, yscale=1, xscale=0.05] ...
它可以工作到 400。如果我增加到samples
400\xmax
以上,它就不再起作用了。同样的错误。
答案1
我不知道这是否有帮助,或者我是否解决了您的问题,但 PgfPlots 通常是一种很好的绘图解决方案。
输出
代码
\documentclass[12pt,tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
height=10cm,
domain=0:1000,
samples=201,
grid=both,
axis lines=center,
clip=false,
]
\addplot[color=blue!70] {sin(x)}
node[pos=.83,anchor=west] {$f(x) = \sin(x)$};
\end{axis}
\end{tikzpicture}
\end{document}