Farben angeben #

Matplotlib erkennt die folgenden Formate, um eine Farbe anzugeben.

Format

Beispiel

RGB- oder RGBA-Tupel (Rot, Grün, Blau, Alpha) von Float-Werten in einem geschlossenen Intervall [0, 1].

  • (0.1, 0.2, 0.5)

  • (0.1, 0.2, 0.5, 0.3)

Hex-RGB- oder RGBA-String ohne Berücksichtigung der Groß-/Kleinschreibung.

  • '#0f0f0f'

  • '#0f0f0f80'

Groß-/Kleinschreibung nicht beachtende RGB- oder RGBA-String-Äquivalente in Hex-Kurzform von duplizierten Zeichen.

  • '#abc'wie'#aabbcc'

  • '#fb1'wie'#ffbb11'

Zeichenfolgendarstellung des Gleitkommawerts im geschlossenen Intervall für Graustufenwerte.[0, 1]

  • '0'als schwarz

  • '1'als weiß

  • '0.8'als hellgrau

Einzelzeichen-Kurzschreibweise für einige Grundfarben.

Notiz

Die Farben Grün, Cyan, Magenta und Gelb stimmen nicht mit den X11/CSS4-Farben überein. Ihre besonderen Schattierungen wurden gewählt, um farbige Linien vor typischen Hintergründen besser sichtbar zu machen.

  • 'b'als blau

  • 'g'als grün

  • 'r'als rot

  • 'c'als Cyan

  • 'm'als Magenta

  • 'y'als gelb

  • 'k'als schwarz

  • 'w'als weiß

X11/CSS4-Farbname ohne Berücksichtigung der Groß-/Kleinschreibung ohne Leerzeichen.

  • 'aquamarine'

  • 'mediumseagreen'

Farbname ohne Berücksichtigung der Groß-/Kleinschreibung aus der xkcd-Farbübersicht mit 'xkcd:' Präfix.

  • 'xkcd:sky blue'

  • 'xkcd:eggshell'

Tableau-Farben ohne Berücksichtigung der Groß-/Kleinschreibung aus der Kategoriepalette „T10“.

Notiz

Dies ist der Standardfarbzyklus.

  • 'tab:blue'

  • 'tab:orange'

  • 'tab:green'

  • 'tab:red'

  • 'tab:purple'

  • 'tab:brown'

  • 'tab:pink'

  • 'tab:gray'

  • 'tab:olive'

  • 'tab:cyan'

„CN“-Farbspezifikation, wobei 'C' eine Zahl vorangestellt ist, die als Index für den Standardeigenschaftenzyklus dient.

Notiz

Matplotlib indiziert die Farbe zum Zeitpunkt des Zeichnens und ist standardmäßig schwarz, wenn der Zyklus keine Farbe enthält.

  • 'C0'

  • 'C1'

rcParams["axes.prop_cycle"](Standard: )cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])

Siehe auch

Die folgenden Links bieten weitere Informationen zu Farben in Matplotlib.

„Rot“, „Grün“ und „Blau“ sind die Intensitäten dieser Farben. Zusammen repräsentieren sie den Farbraum.

Matplotlib zeichnet Künstler basierend auf dem zorderParameter. Wenn keine Werte angegeben sind, verwendet Matplotlib standardmäßig die Reihenfolge der zu den Achsen hinzugefügten Künstler.

Das Alpha für einen Künstler steuert die Deckkraft. Es zeigt an, wie sich die RGB-Farbe des neuen Künstlers mit den bereits auf den Achsen vorhandenen RGB-Farben kombiniert.

Die beiden Artists kombinieren mit Alpha Compositing. Matplotlib verwendet die folgende Gleichung, um das Ergebnis des Mischens eines neuen Künstlers zu berechnen.

RGB_{new} = RGB_{below} * (1 - \alpha) + RGB_{artist} * \alpha

Alpha von 1 gibt an, dass der neue Künstler die vorherige Farbe vollständig überdeckt. Alpha von 0 für die obere Farbe ist nicht sichtbar; es trägt jedoch als kumulatives Ergebnis aller vorherigen Künstler zum Mischen für Zwischenwerte bei. Die folgende Tabelle enthält Beispiele.

Alpha-Wert

Visuell

0.3

../../_images/color_zorder_A.png

1

../../_images/color_zorder_B.png

Notiz

Die Neuordnung von Künstlern ist in Matplotlib nicht kommutativ.

Farbauswahl "CN" #

Matplotlib konvertiert "CN"-Farben beim Zeichnen von Künstlern in RGBA. Der Abschnitt Styling mit Cycler enthält zusätzliche Informationen zur Steuerung von Farben und Style-Eigenschaften.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

th = np.linspace(0, 2*np.pi, 128)


def demo(sty):
    mpl.style.use(sty)
    fig, ax = plt.subplots(figsize=(3, 3))

    ax.set_title('style: {!r}'.format(sty), color='C0')

    ax.plot(th, np.cos(th), 'C1', label='C1')
    ax.plot(th, np.sin(th), 'C2', label='C2')
    ax.legend()


demo('default')
demo('seaborn-v0_8')
  • Stil: 'Standard'
  • Stil: 'seaborn-v0_8'

Die erste Farbe 'C0'ist der Titel. Jeder Plot verwendet die zweite und dritte Farbe jedes Stils rcParams["axes.prop_cycle"](Standard: ). Sie sind bzw. .cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])'C1''C2'

Vergleich zwischen X11/CSS4- und xkcd-Farben #

Die xkcd-Farben stammen aus einer vom Webcomic xkcd durchgeführten Benutzerumfrage .

95 der 148 X11/CSS4-Farbnamen erscheinen auch in der xkcd-Farbübersicht. Fast alle bilden unterschiedliche Farbwerte in der X11/CSS4- und in der xkcd-Palette ab. Nur „schwarz“, „weiß“ und „cyan“ sind identisch.

Zum Beispiel wird 'blue'Maps to zugeordnet, '#0000FF'während 'xkcd:blue'Maps to '#0343DF'. Aufgrund dieser Namenskollisionen haben alle xkcd-Farben das 'xkcd:'Präfix.

Das Bild unten zeigt Namenskollisionen. Farbnamen, bei denen Farbwerte übereinstimmen, sind fett gedruckt.

import matplotlib.colors as mcolors
import matplotlib.patches as mpatch

overlap = {name for name in mcolors.CSS4_COLORS
           if f'xkcd:{name}' in mcolors.XKCD_COLORS}

fig = plt.figure(figsize=[9, 5])
ax = fig.add_axes([0, 0, 1, 1])

n_groups = 3
n_rows = len(overlap) // n_groups + 1

for j, color_name in enumerate(sorted(overlap)):
    css4 = mcolors.CSS4_COLORS[color_name]
    xkcd = mcolors.XKCD_COLORS[f'xkcd:{color_name}'].upper()

    # Pick text colour based on perceived luminance.
    rgba = mcolors.to_rgba_array([css4, xkcd])
    luma = 0.299 * rgba[:, 0] + 0.587 * rgba[:, 1] + 0.114 * rgba[:, 2]
    css4_text_color = 'k' if luma[0] > 0.5 else 'w'
    xkcd_text_color = 'k' if luma[1] > 0.5 else 'w'

    col_shift = (j // n_rows) * 3
    y_pos = j % n_rows
    text_args = dict(fontsize=10, weight='bold' if css4 == xkcd else None)
    ax.add_patch(mpatch.Rectangle((0 + col_shift, y_pos), 1, 1, color=css4))
    ax.add_patch(mpatch.Rectangle((1 + col_shift, y_pos), 1, 1, color=xkcd))
    ax.text(0.5 + col_shift, y_pos + .7, css4,
            color=css4_text_color, ha='center', **text_args)
    ax.text(1.5 + col_shift, y_pos + .7, xkcd,
            color=xkcd_text_color, ha='center', **text_args)
    ax.text(2 + col_shift, y_pos + .7, f'  {color_name}', **text_args)

for g in range(n_groups):
    ax.hlines(range(n_rows), 3*g, 3*g + 2.8, color='0.7', linewidth=1)
    ax.text(0.5 + 3*g, -0.3, 'X11/CSS4', ha='center')
    ax.text(1.5 + 3*g, -0.3, 'xkcd', ha='center')

ax.set_xlim(0, 3 * n_groups)
ax.set_ylim(n_rows, -1)
ax.axis('off')

plt.show()
Farben

Gesamtlaufzeit des Skripts: ( 0 Minuten 1.413 Sekunden)

Galerie generiert von Sphinx-Gallery