在矢量图中添加箭头体并缩放其头部/主体

在矢量图中添加箭头体并缩放其头部/主体

我正在使用此 MWE 从外部文件绘制矢量场(数据位于这里):

\documentclass{standalone}
\usepackage{pgfplots}


\begin{document}
\begin{tikzpicture}
\begin{axis}[title=Quiver and plot table]
\addplot[blue,quiver={u=\thisrow{u},v=\thisrow{v}},-stealth] table {vector_field.dat};
\end{axis}
\end{tikzpicture}
\end{document} 

我想在故事情节中添加以下几点:

  1. 只显示箭头,是否可以添加箭头主体?
  2. 是否可以缩放箭头和箭头主体的长度以使它们彼此保持一致?

输出

答案1

箭体在这里,但是很小。使用pgfplots/quiver/arrows scale键将其放大。

不幸的是,由于数值变化很大,您的数据不易绘制成箭矢。

也许你应该非线性地缩放它们例如用箭头范数的对数代替箭头范数)

评论中也给出了一些好的(也许更好的)建议。

另请参见下面的第二个版本,看起来更好。

在此处输入图片描述

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[title=Quiver and plot table]
    \addplot
    [
      blue,
      quiver=
      {
        u=\thisrow{u},
        v=\thisrow{v},
        scale arrows=200, %to be adjusted
      },
      -stealth
    ] 
    table {vector_field.dat};
  \end{axis}
\end{tikzpicture}
\end{document} 

另一个版本,取自 pgfplots 手册。

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}

\begin{document}

% define some constants:
\def\U{\thisrow{u}}
\def\V{\thisrow{v}}
\def\LEN{(sqrt((\U)^2 + (\V)^2)}

\begin{tikzpicture}
  \begin{axis}[title=Quiver and plot table]
    \addplot
    [
      blue,
      point meta={\LEN},
      quiver=
      {
        u={(\U)/\LEN}, v={(\V)/\LEN},
        scale arrows=.2,
        every arrow/.append style=
        {
          line width=2pt*\pgfplotspointmetatransformed/1000
        },
      },
      -stealth
    ] 
    table {vector_field.dat};
  \end{axis}
\end{tikzpicture}
\end{document}  

收益: 在此处输入图片描述

干杯,

相关内容