我尝试使用颜色图更改条形图的默认颜色,但没有成功。
问题是我不喜欢默认的颜色序列。但是,我想知道是否有一种方法可以自动切换颜色。我尝试使用,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}