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].

  • (0.1, 0.2, 0.5)

  • (0.1, 0.2, 0.5, 0.3)

Chaîne RVB ou RVBA hexadécimale insensible à la casse.

  • '#0f0f0f'

  • '#0f0f0f80'

Raccourci hexadécimal équivalent à une chaîne RVB ou RVBA insensible à la casse des caractères dupliqués.

  • '#abc'comme'#aabbcc'

  • '#fb1'comme'#ffbb11'

Représentation sous forme de chaîne de la valeur flottante dans un intervalle fermé pour les valeurs en niveaux de gris.[0, 1]

  • '0'aussi noir

  • '1'aussi blanc

  • '0.8'comme gris clair

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.

  • 'b'aussi bleu

  • 'g'aussi vert

  • 'r'comme rouge

  • 'c'comme cyan

  • 'm'comme magenta

  • 'y'comme jaune

  • 'k'aussi noir

  • 'w'aussi blanc

Nom de couleur X11/CSS4 insensible à la casse sans espaces.

  • 'aquamarine'

  • 'mediumseagreen'

Nom de couleur insensible à la casse de xkcd color survey avec 'xkcd:' préfixe.

  • 'xkcd:sky blue'

  • 'xkcd:eggshell'

Couleurs de tableau insensibles à la casse de la palette catégorielle « T10 ».

Noter

Il s'agit du cycle de couleurs par défaut.

  • 'tab:blue'

  • 'tab:orange'

  • 'tab:green'

  • 'tab:red'

  • 'tab:purple'

  • 'tab:brown'

  • 'tab:pink'

  • 'tab:gray'

  • 'tab:olive'

  • 'tab:cyan'

Spécification de couleur "CN" où 'C' précède un nombre agissant comme un index dans le cycle de propriétés par défaut.

Noter

Matplotlib indexe la couleur au moment du dessin et prend par défaut le noir si le cycle n'inclut pas la couleur.

  • 'C0'

  • 'C1'

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

Voir également

Les liens suivants fournissent plus d'informations sur les couleurs dans Matplotlib.

"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 zorderparamè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

0.3

../../_images/color_zorder_A.png

1

../../_images/color_zorder_B.png

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')
  • style : 'par défaut'
  • style : '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()
couleurs

Durée totale d'exécution du script : (0 minutes 1,413 secondes)

Galerie générée par Sphinx-Gallery