5

Related to the question tikz legend in caption I want to use the colorbrewer library (just unzip the archive in the working directory). However, it seems that they cannot be used together.

\documentclass{book}
\usepackage{lipsum}
\usepackage{caption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.3}
\usepgfplotslibrary{colorbrewer}

\begin{document}
\lipsum[1]
\begin{figure}[!ht]
\centering
\captionsetup{width=9.5cm}
\pgfplotsset{every axis plot post/.append style={mark=none,line width=1.5pt}}
\begin{tikzpicture}
\begin{axis}[height=7cm,width=9cm,grid=major,xlabel=$x$,ylabel=$f(x)$,
tick label style={font=\footnotesize},label style={font=\small},max space between ticks=45, major tick length=0cm,minor tick length=0cm,enlargelimits=false,colorbrewer cycle list=Dark2]
\addplot{2*x};\label{p4}
\addplot{0.5*x*x};\label{p5}
\addplot{-0.125*x*x*x};\label{p6}
\end{axis}
\end{tikzpicture}
\caption[Caption in ToC]{This is a plot about colored curves: $f(x)=2 x$ (\ref{p4}),  $f(x)=0.5 x^2$ (\ref{p5}), and $f(x)=-0.125 x^3$ (\ref{p6})}
\end{figure}
\lipsum[1]
\end{document}

I get the error

! Package pgfkeys Error: I do not know the key '/tikz/colorbrewer cycle list' a

More general is it possible to use custom color cycles? The following code does not work until I comment the line of pgfplotsset.

\documentclass{book}
\usepackage{lipsum}
\usepackage{caption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.3}
\definecolor{cb_dark2_1}{RGB}{27,158,119}
\definecolor{cb_dark2_2}{RGB}{217,95,2}
\definecolor{cb_dark2_3}{RGB}{117,112,179}
\definecolor{cb_dark2_4}{RGB}{231,41,138}
\definecolor{cb_dark2_5}{RGB}{102,166,30}
\definecolor{cb_dark2_6}{RGB}{230,171,2}
\definecolor{cb_dark2_7}{RGB}{166,118,29}
\definecolor{cb_dark2_8}{RGB}{102,102,102}
% uncomment the next line for working example
\pgfplotsset{cycle list={cb_dark2_1\\ cb_dark2_2\\ cb_dark2_3\\ cb_dark2_4\\ cb_dark2_5\\ cb_dark2_6\\ cb_dark2_7\\ cb_dark2_8},
}
\begin{document}
\lipsum[1]
\begin{figure}[!ht]
\centering
\captionsetup{width=9.5cm}
\pgfplotsset{every axis plot post/.append style={mark=none,line width=1.5pt}}
\begin{tikzpicture}
\begin{axis}[height=7cm,width=9cm,grid=major,xlabel=$x$,ylabel=$f(x)$,
tick label style={font=\footnotesize},label style={font=\small},max space between ticks=45, major tick length=0cm,minor tick length=0cm,enlargelimits=false]
\addplot{2*x};\label{p4}
\addplot{0.5*x*x};\label{p5}
\addplot{-0.125*x*x*x};\label{p6}
\end{axis}
\end{tikzpicture}
\caption[Caption in ToC]{This is a plot about colored curves: $f(x)=2 x$ (\ref{p4}),  $f(x)=0.5 x^2$ (\ref{p5}), and $f(x)=-0.125 x^3$ (\ref{p6})}
\end{figure}
\lipsum[1]
\end{document}
0
4

The problem occurs because you are using a wrong cycle list name and a wrong pgf key. You must use cycle list name=Name, and a proper cycle name as Dark2-5, see the list definition inside pgflibrarypgfplots.colorbrewer.code.tex.

Code

\documentclass{book}
\usepackage{lipsum}
\usepackage{caption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.3}
\usepgfplotslibrary{colorbrewer}

\begin{document}
    \lipsum[1]
    \begin{figure}[!ht]
        \centering
        \captionsetup{width=9.5cm}
        \pgfplotsset{every axis plot post/.append style={mark=none,line width=1.5pt}}
        \begin{tikzpicture}
        \begin{axis}[height=7cm,
                     width=9cm,
                     grid=major,
                     xlabel=$x$,
                     ylabel=$f(x)$,
                     tick label style={font=\footnotesize},
                     label style={font=\small},
                     max space between ticks=45,
                     major tick length=0cm,
                     minor tick length=0cm,
                     enlargelimits=false,
                     cycle list name=Dark2-5] %Here
        \addplot{2*x};\label{p4}
        \addplot{0.5*x*x};\label{p5}
        \addplot{-0.125*x*x*x};\label{p6}
        \end{axis}
        \end{tikzpicture}
        \caption[Caption in ToC]{This is a plot about colored curves: $f(x)=2 x$ (\ref{p4}),  $f(x)=0.5 x^2$ (\ref{p5}), and $f(x)=-0.125 x^3$ (\ref{p6})}
    \end{figure}
    \lipsum[1]
\end{document}

Result

enter image description here

Problem defining cycle lists

For the second part you need to close the cycle list definition with a newline token \\ : \pgfplotsset{cycle list={cb_dark2_1\\ cb_dark2_2\\ cb_dark2_3\\ cb_dark2_4\\ cb_dark2_5\\ cb_dark2_6\\ cb_dark2_7\\ cb_dark2_8\\}}.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.