pgfplots:在一个图内使用两个水平颜色条

pgfplots:在一个图内使用两个水平颜色条

对于我的工作,我需要一个带有两个独立颜色条的图形。根据 pgfplots 手册,有一个低级键/pgfplots/colorbar/draw/.code={⟨... ⟩}(第 4.9.12 章,第 233 页)。我已设法基于此键实现第二个颜色条。但问题是第二个颜色条似乎忽略了该colorbar horizontal键,因此它呈现为垂直(请参阅附件中的最小工作示例)。

是否有人遇到过同样的问题或有任何想法可以解决这个问题?

例子

\documentclass{minimal}

\usepackage{pgfplots}
\pgfplotsset{compat=1.12}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    width=10cm,
    height=10cm,
    colormap/jet,
    colorbar horizontal,
    point meta min=0,
    point meta max=1,
    colorbar style={
      at={(0.75,-0.8)},
      anchor=center,
      width=3cm
    },
    colorbar/draw/.append code={
      \begin{axis}[
        colormap/blackwhite,
        colorbar horizontal,
        point meta min=0,
        point meta max=1,
        every colorbar/.append style={
          at={(0.25,-0.8)},
          anchor=center,
          width=3cm
        },
        every colorbar,
        colorbar shift,
        colorbar=false,
      ]
        \pgfkeysvalueof{/pgfplots/colorbar addplot}
      \end{axis}
    }]
    \addplot {x};
  \end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

由于某种原因,every colorbar/.append style无法按预期工作。但是,由于它是在颜色栏上下文中设置的,因此您可以直接设置选项。这有效:

\documentclass{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=1.12}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    width=10cm,
    height=10cm,
    colormap/jet,
    colorbar horizontal,
    point meta min=0,
    point meta max=1,
    colorbar style={
      at={(0.75,-0.8)},
      anchor=center,
      width=3cm
    },
    colorbar/draw/.append code={
      \begin{axis}[
        colormap/blackwhite,
        colorbar horizontal,
        point meta min=0,
        point meta max=1,
        every colorbar,
          at={(0.25,-0.8)},
          anchor=center,
          width=3cm,
        colorbar shift,
        colorbar=false,
      ]
        \pgfkeysvalueof{/pgfplots/colorbar addplot}
      \end{axis}
    }]
    \addplot {x};
  \end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容