Notiz
Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen
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]. |
|
Hex-RGB- oder RGBA-String ohne Berücksichtigung der Groß-/Kleinschreibung. |
|
Groß-/Kleinschreibung nicht beachtende RGB- oder RGBA-String-Äquivalente in Hex-Kurzform von duplizierten Zeichen. |
|
Zeichenfolgendarstellung des Gleitkommawerts im geschlossenen Intervall für Graustufenwerte. |
|
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. |
|
X11/CSS4-Farbname ohne Berücksichtigung der Groß-/Kleinschreibung ohne Leerzeichen. |
|
Farbname ohne Berücksichtigung der Groß-/Kleinschreibung aus der
xkcd-Farbübersicht mit |
|
Tableau-Farben ohne Berücksichtigung der Groß-/Kleinschreibung aus der Kategoriepalette „T10“. Notiz Dies ist der Standardfarbzyklus. |
|
„CN“-Farbspezifikation, wobei Notiz Matplotlib indiziert die Farbe zum Zeitpunkt des Zeichnens und ist standardmäßig schwarz, wenn der Zyklus keine Farbe enthält. |
|
|
Siehe auch
- Die folgenden Links bieten weitere Informationen zu Farben in Matplotlib.
Farbdemo- Beispiel
Liste der benannten Farben Beispiel
„Rot“, „Grün“ und „Blau“ sind die Intensitäten dieser Farben. Zusammen repräsentieren sie den Farbraum.
Matplotlib zeichnet Künstler basierend auf dem zorder
Parameter. 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 |
---|---|
|
|
|
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')
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()
Gesamtlaufzeit des Skripts: ( 0 Minuten 1.413 Sekunden)