![使用 pgfplots 缩放颜色图](https://linux22.com/image/244052/%E4%BD%BF%E7%94%A8%20pgfplots%20%E7%BC%A9%E6%94%BE%E9%A2%9C%E8%89%B2%E5%9B%BE.png)
我有两个表面图,我希望它们具有相同的颜色和相同的高度。因此,由于第一个图在 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
(默认情况下为值)。对于您的情况,您需要明确设置范围。您可以使用和 来执行此操作。y
point 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}