pgfplots 绘制 [4,4.001] 中的函数

pgfplots 绘制 [4,4.001] 中的函数

当我尝试在小范围内绘制函数时,输出是 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设置的可见范围),则无需任何手动坐标变换即可正确绘制数据:xminxmax

\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}

相关内容