修改 pgfplots 3d 曲面

修改 pgfplots 3d 曲面

我正在尝试修改曲面以pgfplots获得类似于 Matlab 的结果。下图是我想要实现的。

Matlab 结果

我使用的代码:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{colormap/viridis,width=10cm,compat=1.9}

\begin{document}


\begin{tikzpicture}
\begin{axis}[
    colormap/viridis,
    view={60}{30},
]
\addplot3[
    surf,
    samples=25,
    domain=-3:3,
]
{x^2+4*y^2};
\addlegendentry{\(x^2+4y^2\)}
\end{axis}
\end{tikzpicture}

\end{document}

代码结果

所以基本上我想做的是移除表面的底部pgfplots。椭圆由 -2<x<2 和 -1<y<1 定义,中心位于 (0,0)。

答案1

\documentclass[border=1 cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[colormap/viridis, view={40}{50}]
\addplot3[surf, shader=faceted interp, samples=25, domain=-3:3] {x^2+4*y^2};
\addlegendentry{\(x^2+4y^2\)}
\clip[preaction={fill=white}] plot[domain=-180:180, samples=100, variable=\t] ({2*cos(\t)},{sin(\t)},4);  
\addplot3[surf, shader=faceted interp, samples=25, domain=-3:3, unbounded coords=jump] {x^2+4*y^2>4 ? x^2+4*y^2 : nan};
\end{axis}
\end{tikzpicture}
\end{document}

椭圆形切口的表面图

shader=interp

表面光滑、无网格的图形

相关内容