使用 pgfplots 绘制矢量场绝对值的颜色图

使用 pgfplots 绘制矢量场绝对值的颜色图

使用矩阵您可以将矢量场的绝对值绘制为颜色图,以指示给定点的场强度。结果将如下所示:

matlab 图表 (源代码:https://scicomp.stackexchange.com/a/18774/11911

是否可以使用 pgfplots 或其他 LaTeX 绘图库绘制类似的颜色图?如何操作?

编辑

为了回答这个问题,只需考虑一个像这样的矢量场的简单例子:

\documentclass{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
xmin=-2,
xmax=2,
ymin=-2,
ymax=2,
view={0}{90}
]
\addplot3
[
samples=15,
->,
quiver={
  u={y},
  v={x},
  scale arrows=0.3,   
},
] {0};
%% Corresponding colormap is missing
\end{axis}
\end{tikzpicture}  
\end{document}

在此处输入图片描述

答案1

这个怎么样?(使用编译可以lualatex大大加快速度。)

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\pgfplotsset{/pgfplots/colormap={jet}{rgb255(0cm)=(0,0,128) rgb255(1cm)=(0,0,255)
rgb255(3cm)=(0,255,255) rgb255(5cm)=(255,255,0) rgb255(7cm)=(255,0,0)
rgb255(8cm)=(128,0,0)}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-2,xmax=2,ymin=-2,ymax=2,view={0}{90},
    colormap/jet]
\addplot3[surf,shader=interp,samples=101,point meta=-z]{min(sqrt(x*x+y*y),2.2)};
\addplot3
[samples=14,-stealth,quiver={u={y},v={x},scale arrows=0.3,}] {0};
\end{axis}
\end{tikzpicture}  
\end{document}

在此处输入图片描述

你可以使用point meta maxpoint meta min,但我认为jet颜色图与 MatLab 的非常接近。这个答案例如可以煮

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\pgfplotsset{/pgfplots/colormap={jet}{rgb255(0cm)=(0,0,128) rgb255(1cm)=(0,0,255)
rgb255(3cm)=(0,255,255) rgb255(5cm)=(255,255,0) rgb255(7cm)=(255,0,0)
rgb255(8cm)=(128,0,0)}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-2,xmax=2,ymin=-2,ymax=2,view={0}{90},
    colormap/jet]
\addplot3[surf,shader=interp,samples=101,point meta=z]{2.2-min(sqrt(x*x+y*y),2.2)};
\addplot3[samples=24,
point meta={min(sqrt(x*x+y*y),2.2)},
quiver={u={y},v={x},scale arrows=0.18,
every arrow/.append style={%https://tex.stackexchange.com/a/134169
            line width=1.5pt*\pgfplotspointmetatransformed/1000,
            -stealth
        },
}] {0};
\end{axis}
\end{tikzpicture}  
\end{document}

在此处输入图片描述

我认为绘制“真实”矢量场的主要挑战不在于呈现,而在于求解场方程以获得一些可以输入的良好函数。

相关内容