指定在 pgfplots 中使用哪个用户定义的颜色图

指定在 pgfplots 中使用哪个用户定义的颜色图

我已经弄清楚了如何在 中定义自己的颜色图pgfplots。我的理解是,当我定义颜色图并绘制任何需要颜色条的图形时,使用的默认配色方案将成为我定义的配色方案。我的问题是,如果我定义多个颜色图,如何指定我想要选择的那个?我真的找不到选项。这是一个 MWE

 \documentclass{article}
     \usepackage{pgfplots}
     \usepackage{tikz}
     \pgfplotsset{
        colormap={mygreen}{rgb255(0cm)=(0,0,0); rgb255(1cm)=(0,255,0)}
         }
   \begin{document}
      \begin{figure}
        \begin{tikzpicture}[scale=0.45]
             \begin{axis}[view={0}{90},colorbar]
                \addplot3[surf, shader=interp] table{
              1      0     2
              2      0     1

              1      1     0
              2      1     3

              1      2     1
              2      2     1
             };
             \end{axis} 
         \end{tikzpicture}
      \end{figure}
   \end{document}

上面的例子将使用mygreencolormap。比如说,我已经定义了另一个 colormap colormap={randcolor}{rgb255(0cm)=(0,100,0); rgb255(1cm)=(100,255,155)},我该如何选择使用它呢?起初我使用了选项colormap/mygreen,但它给了我一些编译错误。

答案1

此选项称为“ ” colormap name,可以设置为您的轴。请参阅下面的示例:

% arara: pdflatex

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{%
    ,compat=1.13
    ,colormap={mygreen}{rgb255(0cm)=(0,0,0); rgb255(1cm)=(0,255,0)}
    ,colormap={myblue}{rgb255(0cm)=(0,0,0); rgb255(1cm)=(0,0,255)}
    ,colormap={myred}{rgb255(0cm)=(0,0,0); rgb255(1cm)=(255,0,0)}
}
\usepackage{filecontents} % this would be a good approach for your next MWE. A very handy package.
\begin{filecontents*}{somesurf.data}
    1      0     2
    2      0     1

    1      1     0
    2      1     3

    1      2     1
    2      2     1
\end{filecontents*}

\begin{document}
\begin{figure}
    \begin{tikzpicture}[scale=0.4] % reduced scale in order to fit three in a row
        \begin{axis}[view={0}{90},colorbar,colormap name=myred] % the option colormap name is set here
            \addplot3[surf, shader=interp] table{somesurf.data};
        \end{axis} 
    \end{tikzpicture}
    \begin{tikzpicture}[scale=0.4]
        \begin{axis}[view={0}{90},colorbar,colormap name=mygreen]
            \addplot3[surf, shader=interp] table{somesurf.data};
        \end{axis} 
    \end{tikzpicture}
    \begin{tikzpicture}[scale=0.4]
        \begin{axis}[view={0}{90},colorbar,colormap name=myblue]
            \addplot3[surf, shader=interp] table{somesurf.data};
        \end{axis} 
    \end{tikzpicture}
\end{figure}
\end{document}

在此处输入图片描述

相关内容