我正在使用此 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
箭体在这里,但是很小。使用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}
干杯,