Graustufenkompatible Farben für TikZ

Graustufenkompatible Farben für TikZ

Ich suche nach fünf verschiedenen Farben/Füllstilen für die Balken in einem TikZ-Diagramm. Die Balken sind ziemlich schmal. Ich möchte, dass sie sich deutlich unterscheiden, wenn sie auf dem Bildschirm angezeigt oder in Farbe gedruckt werden, aber auch, wenn dieselbe PDF-Datei in Schwarzweiß gedruckt wird.

Kann jemand einen guten Satz Farbdefinitionen empfehlen? Oder eine andere Möglichkeit, die Balken so zu füllen, dass sie in beiden Szenarien unterscheidbar sind? Ein Bonus (nicht unbedingt erforderlich) wäre, wenn auch farbenblinde Menschen sie leicht auseinanderhalten könnten.

Zur Klarstellung: Ich möchte keine Graustufen-PDF-Datei erstellen oder eine separate Ausgabe für den Schwarzweißdruck generieren, wie ich in einigen anderen Antworten gesehen habe. Danke!

Antwort1

Die Lösung von @leandriis, Farbe mit einem bestimmten Anteil Schwarz oder Weiß zu mischen, hat mir geholfen, eine Lösung zu finden, aber ich stellte fest, dass die dadurch erzeugten Farben beim Drucken weder in Farbe noch in Graustufen deutlich genug waren. Um die Schattierungen in Graustufen deutlich zu machen, habe ich Vollschwarz und Vollweiß (mit einem schwarzen Rand) hinzugefügt. Um sie farblich deutlicher zu machen, habe ich verschiedene Farbtöne (Rot, Grün, Blau) verwendet. Allerdings waren meine Blautöne bei der Konvertierung in Graustufen immer dunkler als erwartet, also habe ich Blau schließlich durch Grau ersetzt.

Hier ist das Ergebnis, das ich mit dem Quellcode von @leandriis für die Demo erreicht habe:

\documentclass[a4paper, 12pt]{article}
\usepackage{pgfplots}
\begin{document}

  \begin{tikzpicture}
    \begin{axis}[
        xmin=0,
        xmax=6,
        xtick={1,2,3,4,5},
        ytick={0,5},
        ymin=0,
        ymax=5,
        every axis plot/.append style={
          ybar,
          bar width=10pt,
          bar shift=0pt,
          fill
        }
      ]
      \addplot[draw=black,fill=white]coordinates {(1,5)};
      \addplot[fill=black!15!white]coordinates{(2,5)};
      \addplot[fill=red!40!white]coordinates{(3,5)};
      \addplot[green!60!black]coordinates{(4,5)};
      \addplot[black]coordinates{(5,5)};
    \end{axis}
  \end{tikzpicture}
\end{document}

Es ist nicht besonders hübsch, aber es scheint zu funktionieren! (Aber Kommentare zu ästhetisch ansprechenderen Farbkombinationen sind willkommen!)

FarbdemobildGraustufen-Demobild

Antwort2

Ich würde vorschlagen, eine Grundfarbe zu verwenden, die Sie dann mit unterschiedlichen Mengen Weiß und Schwarz mischen können, um fünf verschiedene Schattierungen dieser Farbe zu erzeugen. Im folgenden Beispiel habe ich Blau als Grundfarbe verwendet, aber dasselbe kann auch mit anderen Farben gemacht werden (wie etwa Rot und Grün, wie im Bild unten gezeigt).

\documentclass[a4paper, 12pt]{article}
\usepackage{pgfplots}
\begin{document}

  \begin{tikzpicture}
    \begin{axis}[
        xmin=0,
        xmax=6,
        xtick={1,2,3,4,5},
        ytick={0,5},
        ymin=0,
        ymax=5,
        every axis plot/.append style={
          ybar,
          bar width=10pt,
          bar shift=0pt,
          fill
        }
      ]
      \addplot[blue!15!white]coordinates {(1,5)};
      \addplot[blue!40!white]coordinates{(2,5)};
      \addplot[blue]coordinates{(3,5)};
      \addplot[blue!60!black]coordinates{(4,5)};
      \addplot[blue!15!black]coordinates{(5,5)};
    \end{axis}
  \end{tikzpicture}
\end{document}

Dieselben in Graustufen konvertierten Balkendiagramme werden neben dem entsprechenden Farbdiagramm im folgenden Bild angezeigt:

Bildbeschreibung hier eingeben

Antwort3

Die Farben aus demninecolorsPaket kann für diese Aufgabe nützlich sein.

Hier ist ein Beispiel, bei dem alle anderen vordefinierten Blautöne verwendet werden:

Bildbeschreibung hier eingeben

\documentclass[a4paper, 12pt]{article}
\usepackage{pgfplots}
\usepackage{ninecolors}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}[
        xmin=0.5,
        xmax=5.5,
        xtick={1,2,3,4,5},
        ytick={-1,4},
        ymin=0,
        ymax=3,
        every axis plot/.append style={
          ybar,
          bar width=15pt,
          bar shift=0pt,
          fill
        }
      ]
      \addplot[blue1]coordinates {(1,3)};
      \addplot[blue3]coordinates {(2,3)};
      \addplot[blue5]coordinates {(3,3)};
      \addplot[blue7]coordinates {(4,3)};
      \addplot[blue9]coordinates {(5,3)};
    \end{axis}
  \end{tikzpicture}
\end{document}

Und hier ist eine Übersicht aller definierten Farben redX, brownX, yellowX, oliveX, greenX, tealX, cyanX, azureX, blueX, violetX, magentaX, purpleX(mit X= einer Zahl zwischen 1 und 9) und Schattierungen, sowie des gleichen Plotbildes bei der Anzeige in Graustufen:

Bildbeschreibung hier eingeben

verwandte Informationen