使用 pgfplots 设置颜色图来填充条形图

使用 pgfplots 设置颜色图来填充条形图

我尝试使用颜色图更改条形图的默认颜色,但没有成功。

问题是我不喜欢默认的颜色序列。但是,我想知道是否有一种方法可以自动切换颜色。我尝试使用,cycle list name但它只会更改线条而不会填充条形。还有希望吗,还是每次我都必须在命令中手动设置颜色\addplot

这是我所拥有的一个例子

\documentclass{article}

\usepackage{tikz}
\usepackage{pgfplots}

\pgfplotsset{width=\linewidth,compat=1.3}

\begin{document}
\pagestyle{empty}

\begin{tikzpicture}
\begin{axis}[
x tick label style={
/pgf/number format/1000 sep=},
ylabel=Population,
enlargelimits=0.05,
legend style={at={(0.5,-0.15)},
anchor=north,legend columns=-1},
ybar interval=0.7,
cycle list name=color list`enter code here`
]
\addplot
coordinates {(1930,50e6) (1940,33e6)
(1950,40e6) (1960,50e6) (1970,70e6)};
\addplot
coordinates {(1930,38e6) (1940,42e6)
(1950,43e6) (1960,45e6) (1970,65e6)};
\addplot
coordinates {(1930,15e6) (1940,12e6)
(1950,13e6) (1960,25e6) (1970,35e6)};
\addplot
coordinates {(1930,15e6) (1940,12e6)
(1950,13e6) (1960,25e6) (1970,35e6)};

\legend{Far,Near,Here,There}
\end{axis}
\end{tikzpicture}


\end{document}

答案1

Pgfplots 手册第 58 页解释了如何使用bar cycle list你喜欢的颜色声明,因此请包含类似

\pgfplotsset{
   /pgfplots/bar  cycle  list/.style={/pgfplots/cycle  list={%
        {orange,fill=orange!30!white,mark=none},%
        {yellow,fill=yellow!30!white,mark=none},%
        {brown!60!black,fill=brown!30!white,mark=none},%
        {green,fill=green!30!white,mark=none},%
     }
   },
}

在您的文件中,并将获得

在此处输入图片描述

答案2

根据pgfplots-手册(第 133 页)您必须自己定义一个颜色列表,以便稍后使用它。

我改编了您的示例(同时还使用了一个 - 我认为 - 很棒的技巧\usepackage{preview}),这是您想要的吗??

\documentclass{article}

\usepackage{tikz}
\usepackage{pgfplots}
\usepackage[pdftex,active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}

\pgfplotscreateplotcyclelist{mylist}{%
    {blue,mark=*,fill=green},
    {color=red,mark=square},
    {dashed,mark=o},
    {dotted,mark=+,fill=orange}}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
    x tick label style={/pgf/number format/1000 sep=},
    ylabel=Population,
    enlargelimits=0.05,
    legend style={at={(0.5,-0.15)},anchor=north,legend columns=-1},
    ybar interval=0.7,
    cycle list name=mylist
    ]
\addplot
    coordinates {(1930,50e6) (1940,33e6) (1950,40e6) (1960,50e6) (1970,70e6)};
\addplot
    coordinates {(1930,38e6) (1940,42e6) (1950,43e6) (1960,45e6) (1970,65e6)};
\addplot
    coordinates {(1930,15e6) (1940,12e6) (1950,13e6) (1960,25e6) (1970,35e6)};
\addplot
    coordinates {(1930,15e6) (1940,12e6) (1950,13e6) (1960,25e6) (1970,35e6)};

\legend{Far,Near,Here,There}
\end{axis}
\end{tikzpicture}
\end{document}

预览

相关内容