Especificación de colores #

Matplotlib reconoce los siguientes formatos para especificar un color.

Formato

Ejemplo

Tupla RGB o RGBA (rojo, verde, azul, alfa) de valores flotantes en un intervalo cerrado [0, 1].

  • (0.1, 0.2, 0.5)

  • (0.1, 0.2, 0.5, 0.3)

Cadena hexadecimal RGB o RGBA que no distingue entre mayúsculas y minúsculas.

  • '#0f0f0f'

  • '#0f0f0f80'

Taquigrafía hexadecimal equivalente de cadena RGB o RGBA que no distingue entre mayúsculas y minúsculas de caracteres duplicados.

  • '#abc'como'#aabbcc'

  • '#fb1'como'#ffbb11'

Representación de cadena del valor flotante en intervalo cerrado para valores en escala de grises.[0, 1]

  • '0'como negro

  • '1'como blanco

  • '0.8'como gris claro

Notación abreviada de un solo carácter para algunos colores básicos.

Nota

Los colores verde, cian, magenta y amarillo no coinciden con los colores X11/CSS4. Se eligieron sus tonos particulares para una mejor visibilidad de las líneas de color contra fondos típicos.

  • 'b'como azul

  • 'g'como verde

  • 'r'como rojo

  • 'c'como cian

  • 'm'como magenta

  • 'y'como amarillo

  • 'k'como negro

  • 'w'como blanco

Nombre de color X11/CSS4 que no distingue entre mayúsculas y minúsculas sin espacios.

  • 'aquamarine'

  • 'mediumseagreen'

Nombre de color que no distingue entre mayúsculas y minúsculas de la encuesta de color xkcd con 'xkcd:' prefijo.

  • 'xkcd:sky blue'

  • 'xkcd:eggshell'

Colores de Tableau que no distinguen entre mayúsculas y minúsculas de la paleta categórica 'T10'.

Nota

Este es el ciclo de color predeterminado.

  • 'tab:blue'

  • 'tab:orange'

  • 'tab:green'

  • 'tab:red'

  • 'tab:purple'

  • 'tab:brown'

  • 'tab:pink'

  • 'tab:gray'

  • 'tab:olive'

  • 'tab:cyan'

Especificación de color "CN" donde 'C' precede a un número que actúa como un índice en el ciclo de propiedad predeterminado.

Nota

Matplotlib indexa el color en el momento del dibujo y el valor predeterminado es negro si el ciclo no incluye el color.

  • 'C0'

  • 'C1'

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

Ver también

Los siguientes enlaces proporcionan más información sobre los colores en Matplotlib.

"Rojo", "Verde" y "Azul" son las intensidades de esos colores. En combinación, representan el espacio de color.

Matplotlib dibuja Artistas en función del zorderparámetro. Si no hay valores especificados, Matplotlib toma por defecto el orden de los Artistas agregados a los Ejes.

El alfa de un artista controla la opacidad. Indica cómo el color RGB del nuevo Artista se combina con los colores RGB que ya están en los Ejes.

Los dos artistas se combinan con composición alfa. Matplotlib usa la siguiente ecuación para calcular el resultado de mezclar un nuevo Artista.

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

Alfa de 1 indica que el nuevo artista cubre completamente el color anterior. Alfa de 0 para el color superior no es visible; sin embargo, contribuye a la combinación de valores intermedios como resultado acumulativo de todos los Artistas anteriores. La siguiente tabla contiene ejemplos.

valor alfa

Visual

0.3

../../_images/color_zorder_A.png

1

../../_images/color_zorder_B.png

Nota

Reordenar artistas no es conmutativo en Matplotlib.

Selección de color "CN" #

Matplotlib convierte los colores "CN" a RGBA al dibujar artistas. La sección Estilo con ciclador contiene información adicional sobre el control de colores y propiedades de estilo.

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')
  • estilo: 'predeterminado'
  • estilo: 'nacido en el mar-v0_8'

El primer color 'C0'es el título. Cada gráfico utiliza el segundo y tercer color de cada estilo rcParams["axes.prop_cycle"](predeterminado: ). son y , respectivamente.cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])'C1''C2'

Comparación entre colores X11/CSS4 y xkcd #

Los colores de xkcd provienen de una encuesta de usuarios realizada por webcomic xkcd .

95 de los 148 nombres de color X11/CSS4 también aparecen en la encuesta de color xkcd. Casi todos se asignan a diferentes valores de color en X11/CSS4 y en la paleta xkcd. Solo 'negro', 'blanco' y 'cian' son idénticos.

Por ejemplo, 'blue'se asigna a '#0000FF'mientras que 'xkcd:blue'se asigna a '#0343DF'. Debido a estas colisiones de nombres, todos los colores xkcd tienen el 'xkcd:'prefijo.

La siguiente imagen muestra colisiones de nombres. Los nombres de colores donde los valores de color concuerdan están en negrita.

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()
colores

Tiempo total de ejecución del script: (0 minutos 1.413 segundos)

Galería generada por Sphinx-Gallery