我正在尝试修改曲面以pgfplots
获得类似于 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