使用 pfgplots 将 3D 数据集投影到 2D 平面

使用 pfgplots 将 3D 数据集投影到 2D 平面

我想将 3D 数据集投影到预定义 3D 轴环境底部的 2D 平面中。因此我使用以下代码。该代码没有实现预期结果并绘制了一个表面。遗憾的是,在 tikz 和 pfgplots 方面,我的经验并不如我想象的那么丰富。

\documentclass[12pt,a4paper]{article}

\usepackage{pgfplots}
\usepackage{tikz} 

\begin{document}

    \begin{tikzpicture}
    \begin{axis}[view={135}{45},
    width=0.65\textwidth,
    height=0.65\textwidth,
    xlabel={Length (mm)},
    ylabel={Width (mm)},
    zlabel={Phase (rad)},
    xmin=0,
    xmax=45,
    ymin=0,
    ymax=45,
    zmin=-0.5,
    zmax=0.7,
    xmajorgrids,
    ymajorgrids,
    zmajorgrids
    ]
    
      \addplot3 [surf,z buffer=sort,
mesh/rows=41,
mesh/ordering=colwise,
point meta=rawz, 
z filter/.code={\def\pgfmathresult{2.5}}] file{Folder/Subfolder/SurfData.dat};  
 

   
       
    \end{axis}
    \end{tikzpicture}

\begin{document}

第一步,应将图像投影到 3D 环境底部的最低 z 轴点,等于 zmin=-0.5。

在此处输入图片描述

与以下链接相关的我的问题已关闭。 冲浪图的平滑投影 - tikz/gnuplot

相比之下,我有一个 3D 数据集,而不是明确的数学表达式。

编辑:

我想我快到了,但是我的“平坦”表面图没有任何颜色:我使用以下命令在 MatLab 中生成了测试数据:

a=peaks(41);
[x,y]=meshgrid(1:41,1:41);
data = [ x(:) y(:) a(:) ];
save Test.dat data -ASCII

接下来是 Latex 脚本

  \documentclass[12pt,a4paper]{article}

    \usepackage{pgfplots}
    \usepackage{tikz} 
 
    \begin{document}

\begin{tikzpicture}
\begin{axis}[view={135}{45},colormap/viridis,
width=0.65\textwidth,
height=0.65\textwidth,
xlabel={Length (mm)},
ylabel={Width (mm)},
zlabel={Phase (rad)},
xmin=0,
xmax=45,
ymin=0,
ymax=45,
zmin=-8,
zmax=8,
xmajorgrids,
ymajorgrids,
zmajorgrids
]

  
\addplot3 [surf,z buffer=sort,mesh/rows=41,mesh/ordering=colwise] table[z expr=-5]{Test.dat};  

   
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容