Noter
Cliquez ici pour télécharger l'exemple de code complet
Spécification des couleurs #
Matplotlib reconnaît les formats suivants pour spécifier une couleur.
Format |
Exemple |
---|---|
RVB ou RGBA (rouge, vert, bleu, alpha) tuple de valeurs flottantes dans un intervalle fermé [0, 1]. |
|
Chaîne RVB ou RVBA hexadécimale insensible à la casse. |
|
Raccourci hexadécimal équivalent à une chaîne RVB ou RVBA insensible à la casse des caractères dupliqués. |
|
Représentation sous forme de chaîne de la valeur flottante dans un intervalle fermé pour les valeurs en niveaux de gris. |
|
Notation abrégée à caractère unique pour certaines couleurs de base. Noter Les couleurs vert, cyan, magenta et jaune ne coïncident pas avec les couleurs X11/CSS4. Leurs nuances particulières ont été choisies pour une meilleure visibilité des lignes colorées sur des arrière-plans typiques. |
|
Nom de couleur X11/CSS4 insensible à la casse sans espaces. |
|
Nom de couleur insensible à la casse de
xkcd color survey avec |
|
Couleurs de tableau insensibles à la casse de la palette catégorielle « T10 ». Noter Il s'agit du cycle de couleurs par défaut. |
|
Spécification de couleur "CN" où Noter Matplotlib indexe la couleur au moment du dessin et prend par défaut le noir si le cycle n'inclut pas la couleur. |
|
|
Voir également
- Les liens suivants fournissent plus d'informations sur les couleurs dans Matplotlib.
Exemple de démonstration de couleur
Liste des couleurs nommées Exemple
"Rouge", "Vert" et "Bleu" sont les intensités de ces couleurs. En combinaison, ils représentent l'espace colorimétrique.
Matplotlib dessine des artistes en fonction du zorder
paramètre. S'il n'y a pas de valeurs spécifiées, Matplotlib utilise par défaut l'ordre des artistes ajoutés aux axes.
L'alpha d'un artiste contrôle l'opacité. Il indique comment la couleur RVB du nouvel Artiste se combine avec les couleurs RVB déjà sur les Axes.
Les deux artistes se combinent avec l'alpha compositing. Matplotlib utilise l'équation ci-dessous pour calculer le résultat de la fusion d'un nouvel artiste.
RGB_{new} = RGB_{below} * (1 - \alpha) + RGB_{artist} * \alpha
Alpha de 1 indique que le nouvel artiste recouvre complètement la couleur précédente. L'alpha de 0 pour la couleur supérieure n'est pas visible ; cependant, il contribue au mélange des valeurs intermédiaires en tant que résultat cumulatif de tous les artistes précédents. Le tableau suivant contient des exemples.
Valeur alpha |
Visuel |
---|---|
|
|
|
Noter
La réorganisation des artistes n'est pas commutative dans Matplotlib.
Sélection de couleur "CN" #
Matplotlib convertit les couleurs "CN" en RGBA lors du dessin des artistes. La section Styling with cycler contient des informations supplémentaires sur le contrôle des couleurs et des propriétés de style.
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')
La première couleur 'C0'
est le titre. Chaque tracé utilise les deuxième et troisième couleurs de chaque style rcParams["axes.prop_cycle"]
(par défaut : ). Ce sont et , respectivement.cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])
'C1'
'C2'
Comparaison entre les couleurs X11/CSS4 et xkcd #
Les couleurs xkcd proviennent d'une enquête auprès des utilisateurs menée par le webcomic xkcd .
95 des 148 noms de couleurs X11/CSS4 apparaissent également dans l'enquête sur les couleurs xkcd. Presque tous correspondent à différentes valeurs de couleur dans le X11/CSS4 et dans la palette xkcd. Seuls 'noir', 'blanc' et 'cyan' sont identiques.
Par exemple, 'blue'
mappe à '#0000FF'
alors que 'xkcd:blue'
mappe à
'#0343DF'
. En raison de ces collisions de noms, toutes les couleurs xkcd ont le
'xkcd:'
préfixe.
Le visuel ci-dessous montre les collisions de noms. Les noms de couleur où les valeurs de couleur concordent sont en gras.
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()
Durée totale d'exécution du script : (0 minutes 1,413 secondes)