pgfplots 中的箭头刻度(单位缩放)

pgfplots 中的箭头刻度(单位缩放)

可以在 pgfplots 中制作箭头图。这是一个最小示例,它是一个 [1, xy] 的矢量场:

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[domain=-3:3, view={0}{90}]
\addplot3[blue, quiver={u={1}, v={(x-y)}, scale arrows=0.15}, -stealth,samples=20] {0};
\end{axis}
\end{tikzpicture}

\end{document}

这产生了下面的图片。

颤动

问题是,我如何将箭头缩放到单位大小?除以箭头的范数 abs(xy) 不是一个很好的解决方案,因为在零附近 pgfplots 会吐出错误。

答案1

您已经找到了正确的方法:除以箭头长度就是解决方案。 在您的例子中,误差范数是sqrt(1+(x-y)^2)(不要忘记 x 分量!):

\documentclass{minimal}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

\def\length{sqrt(1+(x-y)^2)}
\begin{tikzpicture}
\begin{axis}[domain=-3:3, view={0}{90}]
\addplot3[blue, quiver={u={1/(\length)}, v={(x-y)/(\length)}, scale arrows=0.15}, -stealth,samples=20] {0};
\end{axis}
\end{tikzpicture}

\end{document}

您可能需要进行调整scale arrows(也许再次使用价值1?)。

在此处输入图片描述

相关内容