![PGFPlot 矢量场显示不均匀](https://linux22.com/image/389208/PGFPlot%20%E7%9F%A2%E9%87%8F%E5%9C%BA%E6%98%BE%E7%A4%BA%E4%B8%8D%E5%9D%87%E5%8C%80.png)
我有一个简单的二维向量,但是这些点的排列使得顶部向上的向量不包含在图中。我想知道是否有办法让矢量场分布得更均匀,如这里所示,。
该图像是 pgfplot 中的第二个轴。
\begin{figure}[h]
\begin{tikzpicture}
\begin{axis}[
ticks=none,
view = {0}{90},
domain = -1:1,
y domain = -1:1,
samples = 21,
xmax = 1,
ymax = 1
]
\addplot3 [blue, quiver={u={-(x)/(x^2+y^2)}, v={-(y)/(x^2+y^2)}, scale
arrows=0.04},samples=8,->] (x,y,0);
\draw (axis cs:0,0) node [above] {$z_0$};
\filldraw(axis cs: 0,0)circle(1pt);
\end{axis}
\begin{axis}[ xshift=8cm,
ticks=none,
view = {0}{90},
domain = -1:1,
y domain = -1:1,
samples = 21,
xmax = 1,
ymax = 1
]
\draw (axis cs:1.25,1.25) circle [blue, radius=0.3];
\addplot3 [blue, quiver={u={(x)/(x^2+y^2)}, v={(y)/(x^2+y^2)}, scale
arrows=0.04},samples=8,->] (x,y,0);
\draw (axis cs:0,0) node [above] {$z_0$};
\filldraw(axis cs: 0,0)circle(1pt);
\end{axis}
\end{tikzpicture}
\caption{Sink and source centred around $z_0$.}
\end{figure}
答案1
问题来自于xmax
和ymax
,它们会剪掉过冲矢量。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ticks=none,
view = {0}{90},
domain = -1:1,
y domain = -1:1,
samples = 21,
% xmax = 1,
% ymax = 1
]
\addplot3 [blue, quiver={u={-(x)/(x^2+y^2)}, v={-(y)/(x^2+y^2)}, scale
arrows=0.04},samples=8,->] (x,y,0);
\draw (axis cs:0,0) node [above] {$z_0$};
\filldraw(axis cs: 0,0)circle(1pt);
\end{axis}
\begin{axis}[ xshift=8cm,
ticks=none,
view = {0}{90},
domain = -1:1,
y domain = -1:1,
samples = 21,
% xmax = 1,
% ymax = 1,
]
%\draw (axis cs:1.25,1.25) circle [blue, radius=0.3];
\addplot3 [blue, quiver={u={(x)/(x^2+y^2)}, v={(y)/(x^2+y^2)}, scale
arrows=0.04},samples=8,->] (x,y,0);
\draw (axis cs:0,0) node [above] {$z_0$};
\filldraw(axis cs: 0,0)circle(1pt);
\end{axis}
\end{tikzpicture}
\end{document}