如何从给定的基色定义自定义 pgf 调色板?

如何从给定的基色定义自定义 pgf 调色板?

我有一个包含七个图的堆叠图,并且我正在尝试获取一组与文档其余部分的主色相适应的颜色。

代码如下:

\documentclass{article}

\usepackage{pgfplots}
\usepgfplotslibrary{colorbrewer}

\pgfplotsset{compat=newest}

\definecolor{myblue}{RGB}{95,145,166}

\begin{document}

\tikz \path node[rectangle, fill=myblue,inner sep=1cm] {};

\begin{tikzpicture}

  \begin{axis}[
    xbar stacked,
    cycle list/Blues-7, cycle list name=Blues-7,
    every axis plot/.style={fill}
  ]

    \addplot table {
      first second
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      first second
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      first second
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      first second
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      prova colonna
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      prova colonna
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      prova colonna
      1     5
      2     6
      3     7
      4     8
    };
  \end{axis}
\end{tikzpicture}

\end{document}

其输出为:

输出

因此,来自的 Blue-7 循环列表color brewer是我能找到的最接近的,但是音调不同,因此是错误的。

有没有办法获得类似于但基于上面显示的基本蓝色的 7 色循环列表XX-7colorbrewer从中可以看出,基色可能是该系列中最暗的。

我特别引用是color brewer因为原始调色板中不同颜色之间的亮度差异Blue-7听起来很正确。无论如何,我不需要自动计算颜色。

答案1

你总是可以定义你自己的事物。

\documentclass{article}

\usepackage{pgfplots}
\usepgfplotslibrary{colorbrewer}

\pgfplotsset{compat=newest}

\definecolor{myblue}{RGB}{95,145,166}

\begin{document}

\tikz \path node[rectangle, fill=myblue,inner sep=1cm] {};
\pgfplotscreateplotcyclelist{my blues}{%
myblue,myblue!90,myblue!80,myblue!70,myblue!60,myblue!50,myblue!40,myblue!30,myblue!20}
\begin{tikzpicture}

  \begin{axis}[
    xbar stacked,
    cycle list name=my blues,
    every axis plot/.style={fill},
  ]

    \addplot table {
      first second
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      first second
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      first second
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      first second
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      prova colonna
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      prova colonna
      1     5
      2     6
      3     7
      4     8
    };

    \addplot table {
      prova colonna
      1     5
      2     6
      3     7
      4     8
    };
  \end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

当然,您也可以在循环中定义列表(但这里复制和粘贴更快;-)。

相关内容