如何在倾斜域中使用轮廓图?

如何在倾斜域中使用轮廓图?

我想在我的绘图中应用倾斜角 (fe),类似于右图所示。此外,当我更改 view={0}{90} 时效果会更好,它也能正常工作

在此处输入图片描述

    \documentclass[border=5mm]{standalone}   
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{colorbrewer}

\begin{document}
\begin{tikzpicture}[yscale=0.5]
\begin{axis}[
domain=-180:180,
samples=50,
view={0}{90},
colormap/PiYG,
hide axis,
]
\addplot3 [surf] { cos(x)*cos(y) / 5};
\end{axis}
\end{tikzpicture}
\end{document}

答案1

我最喜欢的宏(狡猾的 (La)TeX 技巧),由 Bruno 于剪切变换一个“盒子”,名为\slantbox[]{}。可选参数是倾斜角的正切(\phi在 OP 的符号中)。

需要 pdflatex,因为它使用 pdf“specials”。

\documentclass[border=5mm]{standalone}   
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{colorbrewer}
\newsavebox{\foobox}
\newcommand{\slantbox}[2][.5]{\mbox{%
        \sbox{\foobox}{#2}%
        \hskip\wd\foobox
        \pdfsave
        \pdfsetmatrix{1 0 #1 1}%
        \llap{\usebox{\foobox}}%
        \pdfrestore
}}
\begin{document}
\setbox0=\hbox{\begin{tikzpicture}[yscale=0.5]
\begin{axis}[
domain=-180:180,
samples=50,
view={0}{90},
colormap/PiYG,
hide axis,
]
\addplot3 [surf] { cos(x)*cos(y) / 5};
\end{axis}
\end{tikzpicture}}
\slantbox[.5]{\box0}\kern14mm
\end{document}

在此处输入图片描述

相关内容