根据我最初的问题:使用 tikz 包制作的断条图
我正在尝试为同一组中的每一位成员涂上不同的颜色。我在序言中定义了我想要使用的颜色:
\definecolor{blue}{RGB}{0,150,214}
\definecolor{greenaccent}{RGB}{0,139,43}
\definecolor{purpleaccent}{RGB}{130,41,128}
\definecolor{orangeaccent}{RGB}{240,83,50}
并pgfplots
在之后立即加载xcolor
。目前我的代码如下所示:
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
width=\linewidth,
ybar,
bar width=7.5pt,
ymin=0,
enlarge x limits={abs=25pt},
legend style={draw=none,at={(0.5,-0.15)},
anchor=north,legend columns=-1},
xlabel={Jahre},
ylabel={Fotos pro Tag (in Millionen)},
symbolic x coords={2008,2009,2010,2011,2012,2013,2014},
xtick=data,
]
\pgfplotsinvokeforeach{Facebook,Instagram,Snapchat,WhatsApp}{
\addplot[
draw opacity=0,
fill=blue
] table[col sep=semicolon,x=Jahr,y=#1]{./Bilder/AnzahlSocialNetwork.csv};
\addlegendentry{#1}
}
\end{axis}
\end{tikzpicture}
\caption{Anzahl der täglich hochgeladenen Fotos (in Millionen)}
\label{fig:AnzahlTäglichFotosSocialNetwork}
\end{figure}
但里面的填充选项将\addplot
所有颜色都涂成了蓝色(显然)。我需要的是可以按照定义的颜色将第一个 y 图定义为蓝色、第二个 y 图为绿色、第三个 y 图为紫色、最后一个 y 图为橙色。手册中写道可以使用条形循环列表,但我找不到可以使用此处定义的 RGB 值的选项(而不是颜色的百分比)。
答案1
您可以将其传递给一个cycle list
键,但是您需要在命令+
后面放置一个符号\addplot
以使其理解,而/.append style
不是覆盖/.style
以使用该cycle list
参数。您可以使用 关闭绘图draw=none
。
并且请不要为了自己的利益而覆盖现有的颜色名称:)
\documentclass{standalone}
\usepackage{pgfplotstable}
\pgfplotstableread[col sep=comma]{
Year, Facebook, Instagram, Snapchat, WhatsApp
2008, 17, 0,0,0
2009,69,0,0,0
2010,197,0,0,0
2011,249,9,0,0
2012,300,9,51,0
2013,343,51,394,394
2014,351,60,703,703
}\mytable
\definecolor{blueaccent}{RGB}{0,150,214}
\definecolor{greenaccent}{RGB}{0,139,43}
\definecolor{purpleaccent}{RGB}{130,41,128}
\definecolor{orangeaccent}{RGB}{240,83,50}
\begin{tikzpicture}
\begin{axis}[
width=\linewidth,
ybar,
bar width=7.5pt,
ymin=0,
enlarge x limits={abs=25pt},
legend style={draw=none,at={(0.5,-0.15)},
anchor=north,legend columns=-1},
xlabel={Jahre},
ylabel={Fotos pro Tag (in Millionen)},
symbolic x coords={2008,2009,2010,2011,2012,2013,2014},
xtick=data,
cycle list={blueaccent,greenaccent,purpleaccent,orangeaccent}
]
\pgfplotsinvokeforeach{Facebook,Instagram,Snapchat,WhatsApp}{
\addplot+[draw=none,fill,] table[x=Year,y=#1]{\mytable};
\addlegendentry{#1}
}
\end{axis}
\end{tikzpicture}
\end{document}