当我尝试在小范围内绘制函数时,输出是 x 轴和 y 轴上从 0 到 1 的空图。我该怎么做才能解决这个问题?我的 tex 看起来像这样:
\begin{tikzpicture}
\begin{axis}[
xmin=4.0,
xmax=4.001,
samples=60,
xlabel=$time$,
ylabel={$acceleration$}
]
\addplot [very thick, blue] {5*x-x^2};
\end{axis}
\end{tikzpicture}
答案1
您可以重新调整计算:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=1,
samples=60,
xlabel=$time$,
xticklabel=\pgfmathparse{4+\tick/1000}\pgfmathresult,
ylabel={$acceleration$}
]
\addplot [very thick, blue] {5*(4+x/1000)-(4+x/1000)^2};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
这里的问题是函数没有在轴范围内求值。标准domain
是-5:5
(这不会通过设置xmin
和来改变xmax
),因此对于 60 个样本,函数在 3.98 和 4.15 处求值。如果设置(因此等于使用和domain=4:4.001
设置的可见范围),则无需任何手动坐标变换即可正确绘制数据:xmin
xmax
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
compat=newest,
samples=60,
xmin=4.0, xmax=4.001,
domain=4:4.001,
xlabel=Time $t$,
ylabel=Acceleration $a$,
ticklabel style={ % Make sure all relevant digits are printed
/pgf/number format/.cd,
fixed,
fixed zerofill,
precision=4
}
]
\addplot [very thick, blue] {5*x-x^2};
\end{axis}
\end{tikzpicture}
\end{document}