Füllen Sie pgfplot-Balken mit Colorbrewer

Füllen Sie pgfplot-Balken mit Colorbrewer

Ich möchte Colorbrewer in meinem Projekt verwenden, da es Farbzykluslisten bereitstellt, aber ich habe Schwierigkeiten, sie richtig zu verwenden. Bitte sehen Sie sich mein MWE an:

\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}

Bildbeschreibung hier eingeben

Mein Problem ist, dass die Leiste nicht gefüllt ist und ich nicht wirklich weiß, wie ich das erreichen kann, ohne fillfür jede eine Anleitung hinzuzufügen addplot.

Übrigens, wenn ich versuche, fill=Dark2-8-1die Addplot-Optionen zu ergänzen, erhalte ich den Fehler! Package xcolor Error: Undefined color Dark2-8-1.

Kann mir jemand sagen, wo ich einen Fehler gemacht habe?

Antwort1

Sie können hinzufügen every axis plot/.append style={fill}, um das Füllproblem zu lösen. Sie können auch eine bestimmte Farbe aus der Zyklusliste aufrufen, indem Sie verwenden Dark2-<color letter>, wenn die initialisierte Zyklusliste Dark2-8eine Farbe aus der Liste ist Dark2-D.

Code

\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}

Eine weitere im PGFPlots-Handbuch empfohlene Möglichkeit, eine bestimmte Farbe aus einem initialisierten Farbschema zu erhalten, besteht in der Verwendung des Schlüssels index of colormapwie folgt:

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

Ergebnis

Bildbeschreibung hier eingeben

verwandte Informationen