Nota
Fare clic qui per scaricare il codice di esempio completo
Specifica dei colori #
Matplotlib riconosce i seguenti formati per specificare un colore.
Formato |
Esempio |
---|---|
Tupla RGB o RGBA (rosso, verde, blu, alfa) di valori float in un intervallo chiuso [0, 1]. |
|
Stringa esadecimale RGB o RGBA senza distinzione tra maiuscole e minuscole. |
|
Abbreviazioni esadecimali equivalenti a stringhe RGB o RGBA senza distinzione tra maiuscole e minuscole di caratteri duplicati. |
|
Rappresentazione di stringa del valore float in un intervallo chiuso per i valori in scala di grigi. |
|
Notazione abbreviata a carattere singolo per alcuni colori di base. Nota I colori verde, ciano, magenta e giallo non coincidono con i colori X11/CSS4. Le loro particolari sfumature sono state scelte per una migliore visibilità delle linee colorate su sfondi tipici. |
|
Nome del colore X11/CSS4 senza distinzione tra maiuscole e minuscole senza spazi. |
|
Nome del colore senza distinzione tra maiuscole e minuscole da
xkcd color survey con |
|
Colori Tableau senza distinzione tra maiuscole e minuscole dalla tavolozza categorica "T10". Nota Questo è il ciclo di colori predefinito. |
|
Specifica di colore "CN" dove Nota Matplotlib indicizza il colore al momento del disegno e il valore predefinito è nero se il ciclo non include il colore. |
|
|
Guarda anche
- I collegamenti seguenti forniscono ulteriori informazioni sui colori in Matplotlib.
Esempio demo colore
Elenco dei colori con nome Esempio
"Rosso", "Verde" e "Blu" sono le intensità di quei colori. In combinazione, rappresentano lo spazio colore.
Matplotlib disegna artisti in base al zorder
parametro. Se non ci sono valori specificati, Matplotlib utilizza per impostazione predefinita l'ordine degli artisti aggiunti agli assi.
L'alfa per un artista controlla l'opacità. Indica come il colore RGB del nuovo Artist si combina con i colori RGB già presenti sugli Axes.
I due artisti si combinano con l'alpha compositing. Matplotlib utilizza l'equazione seguente per calcolare il risultato della fusione di un nuovo artista.
RGB_{new} = RGB_{below} * (1 - \alpha) + RGB_{artist} * \alpha
Alfa di 1 indica che il nuovo artista copre completamente il colore precedente. L'alfa di 0 per il colore superiore non è visibile; tuttavia, contribuisce alla fusione per valori intermedi come risultato cumulativo di tutti gli Artisti precedenti. La tabella seguente contiene esempi.
Valore alfa |
Visivo |
---|---|
|
|
|
Nota
Il riordino degli artisti non è commutativo in Matplotlib.
Selezione colore "CN" #
Matplotlib converte i colori "CN" in RGBA quando si disegnano artisti. La sezione Styling con cycler contiene informazioni aggiuntive sul controllo dei colori e delle proprietà dello stile.
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')
Il primo colore 'C0'
è il titolo. Ogni trama utilizza il secondo e il terzo colore di ogni stile rcParams["axes.prop_cycle"]
(predefinito: ). Sono e , rispettivamente.cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])
'C1'
'C2'
Confronto tra i colori X11/CSS4 e xkcd #
I colori xkcd provengono da un sondaggio tra gli utenti condotto dal webcomic xkcd .
95 dei 148 nomi di colore X11/CSS4 compaiono anche nel sondaggio sui colori xkcd. Quasi tutti sono associati a diversi valori di colore in X11/CSS4 e nella tavolozza xkcd. Solo "nero", "bianco" e "ciano" sono identici.
Ad esempio, 'blue'
esegue il mapping a '#0000FF'
considerando che 'xkcd:blue'
esegue il mapping a
'#0343DF'
. A causa di queste collisioni di nomi, tutti i colori xkcd hanno il
'xkcd:'
prefisso.
L'oggetto visivo seguente mostra le collisioni di nomi. I nomi dei colori in cui i valori dei colori concordano sono in grassetto.
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()
Tempo di esecuzione totale dello script: (0 minuti 1,413 secondi)