使用 pgfplots 缩放颜色图

使用 pgfplots 缩放颜色图

我有两个表面图,我希望它们具有相同的颜色和相同的高度。因此,由于第一个图在 f(x,y)=0 时为深蓝色,因此右侧图在 f(x,y)=0 时也应为深蓝色。但是,深蓝色被分配给图的最低点。因此,右侧图中 f(x,y) 的颜色为亮橙色。

样本来源:

\documentclass{report}
\usepackage{pgfplots}

\begin{document}

% first plot
\begin{tikzpicture}
\begin{axis}[]
\addplot3[surf,colormap name=hot,domain=-2:2] {exp(-x^2-y^2)};
\end{axis}
\end{tikzpicture}

% second plot
\begin{tikzpicture}
\begin{axis}[]
\addplot3[surf,colormap name=hot,domain=-2:2] {exp(-x^2-y^2)-exp(-(x-1)^2-(y-1)^2)};
\end{axis}
\end{tikzpicture}

\end{document}

我怎样才能强制使同一高度的图表具有相同的颜色?

答案1

默认情况下,PGFplots 会拉伸颜色图以覆盖轴上所有图的整个值范围meta(默认情况下为值)。对于您的情况,您需要明确设置范围。您可以使用和 来执行此操作。ypoint meta min=...point meta max=...

\documentclass{report}
\usepackage{pgfplots}

\begin{document}

% first plot
\begin{tikzpicture}
\begin{axis}[point meta min=-1, point meta max=1]
\addplot3[surf,colormap name=hot,domain=-2:2] {exp(-x^2-y^2)};
\end{axis}
\end{tikzpicture}

% second plot
\begin{tikzpicture}
\begin{axis}[point meta min=-1, point meta max=1]
\addplot3[surf,colormap name=hot,domain=-2:2] {exp(-x^2-y^2)-exp(-(x-1)^2-(y-1)^2)};
\end{axis}
\end{tikzpicture}

\end{document}

相关内容