PGFPlots 参数图,按恒定时间的箭头间距

PGFPlots 参数图,按恒定时间的箭头间距

对于粒子位置 (x(t),y(t)) 的参数图,是否可以使用pgfplots沿时间等距绘制箭头来指示行进方向?

例如,对于 (x(t),y(t)) = (t,t^2),我知道如何生成长度等距的箭头:

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{decorations.markings}
\pgfplotsset{compat=1.8}

\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines = middle,smooth,xlabel = $x$, ylabel =$y$, minor tick num =1, grid=both, unit vector ratio*=1 1,enlargelimits = true]
\addplot[thick, variable=\t, domain=0:2, decoration={
    markings,
    mark=between positions 0.2 and 0.99 step 2em with {\arrow [scale=1.5]{stealth}}
    }, postaction=decorate] ({t^2}, {t^4});
\end{axis}
\end{tikzpicture}

\end{document}

屈服

在此处输入图片描述

但是我可以获得恒定的时间间距吗,类似于:

在此处输入图片描述

答案1

您可以使用quiver随附的绘图处理程序pgfplotsquiver绘图处理程序在每个输入样本处绘制箭头。

为此,它需要像往常一样输入坐标每个输入坐标(即 x、y、u、v)的箭头坐标。

就您而言,我们可以轻松对所有所需值进行采样。由于您unit vector ratio*=1 1的列表中有,我们可以将所有箭头标准化为长度 0.1,如下所示:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
width=14cm,
axis lines = middle,smooth,xlabel = $x$, ylabel =$y$, minor tick num =1, grid=both, unit vector ratio*=1 1,enlargelimits = true]
\addplot[smooth, thick, -stealth,variable=\t, domain=0:2]
    ({t^2}, {t^4});

\def\NORM{sqrt((2*t)^2 + (4*t^3)^2)}
\addplot[thick, red,-stealth,samples=12,variable=\t, domain=0.1:2,quiver={
        u=2*t/\NORM, v=4*t^3/\NORM,
        scale arrows=0.1,
    }]
    ({t^2}, {t^4});
\end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

\NORM向量 的向量范数(u,v);与 一起scale arrows=0.1,我们得到了想要的效果。这里,我们需要 \addplot语句:一个绘制情节本身,另一个仅绘制箭头。

为了进行比较,以下是相同的图scale arrows=1

在此处输入图片描述

相关内容