Llenar las barras de pgfplot con colorbrewer

Llenar las barras de pgfplot con colorbrewer

Quiero usar colorbrewer en mi proyecto ya que proporciona listas de ciclos de color, pero creo que me cuesta usarlos de la manera correcta. Por favor, eche un vistazo a mi MWE:

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{colorbrewer}
\pgfplotsset{cycle list/Dark2-8}

\begin{document}

\begin{figure}[h!]
    \pgfplotstableread[row sep=\\,col sep=&]{
            abc & 1 \\
            def & 5 \\
    }\datapoints
    \begin{tikzpicture}
        \begin{axis}[
            % general appearance
            ybar,
            cycle multi list=Dark2-8,
            % x axis
            symbolic x coords={def},
            xtick=data,
            xticklabel style={align=center},
            % y axis
            bar width=0.2cm,
            % legend
            area legend,
            legend entries={1},
            legend pos=north west
        ]
            \addplot table[y=1, x=abc]{\datapoints};
        \end{axis}
    \end{tikzpicture}
\end{figure}

\end{document}

ingrese la descripción de la imagen aquí

Mi problema es que la barra no está llena y realmente no sé cómo lograrlo sin agregar un manual fillpara cada uno addplot.

Por cierto, si intento agregar fill=Dark2-8-1a las opciones de addplot me sale el error! Package xcolor Error: Undefined color Dark2-8-1.

¿Alguien puede señalar dónde me equivoqué?

Respuesta1

Puedes agregar every axis plot/.append style={fill}para resolver el problema de llenado. Además, puede llamar a un color específico de la lista de ciclos usando Dark2-<color letter>, si la lista de ciclos inicializada es Dark2-8un color de la lista Dark2-D.

Código

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{colorbrewer}
\pgfplotsset{cycle list/Dark2-8}

\begin{document}
    \pgfplotstableread{
        x   y
        a   5
        b   6
        c   4
    }\mytable

    \begin{tikzpicture}
        \begin{axis}[
            ybar,
            symbolic x coords={a,b,c},
            xtick=data,
            every axis plot/.append style={fill},
            cycle list name=Dark2-8
        ]
            \addplot table [y=y, x=x]{\mytable};
            \addplot table [y=y, x=x]{\mytable};
            \addplot[fill=Dark2-D,draw=Dark2-D] coordinates {(a,7) (b,1) (c,2)};
        \end{axis}
    \end{tikzpicture}
\end{document}

Otra forma, recomendada por el manual de PGFPlots, de obtener un color particular a partir de un esquema de color inicializado es utilizando la index of colormapsiguiente clave:

\addplot[index of colormap=3 of Dark2-8] coordinates {(a,7) (b,1) (c,2)};

Resultado

ingrese la descripción de la imagen aquí

información relacionada