我想在函数的表面图上方绘制其二维彩色图。
我尝试复制表面图并进行设置z filter/.code={\def\pgfmathresult{1.4}}
,但二维图上的所有内容都是相同的颜色。
此外,如果我可以避免二维图上的抗锯齿伪影(每个四边形由两个三角形组成,它们之间有一条小白线),我会很高兴。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\begin{document}
\begin{tikzpicture}
\begin{axis}[grid=both]
\addplot3[
surf,
shader=faceted interp,
samples=10,
] {sin(deg(x))*sin(deg(y))};
\addplot3[
surf,
shader=faceted interp,
samples=10,
z filter/.code={\def\pgfmathresult{1.4}}
] {sin(deg(x))*sin(deg(y))};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
图的颜色取决于值meta
,默认情况下,该值是z
3D 图中的值。但是,您可以将其设置为其他值:在这种情况下,您会说point meta={sin(deg(x))*sin(deg(y))}
(因此您将使用原始函数作为元值),然后简单地绘制{1.4}
而不是函数:
关于工件:这可能是查看器问题。我没有在 Ubuntu Linux 上使用 Adobe Reader 或 Evince 看到它们。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\begin{document}
\begin{tikzpicture}
\begin{axis}[grid=both]
\addplot3[
surf,
shader=faceted interp,
samples=10,
] {sin(deg(x))*sin(deg(y))};
\addplot3[
surf,
shader=faceted interp,
samples=10,point meta rel=per plot,
point meta={sin(deg(x))*sin(deg(y))}
] {1.4};
\end{axis}
\end{tikzpicture}
\end{document}