Nota
Haga clic aquí para descargar el código de ejemplo completo
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]. |
|
Cadena hexadecimal RGB o RGBA que no distingue entre mayúsculas y minúsculas. |
|
Taquigrafía hexadecimal equivalente de cadena RGB o RGBA que no distingue entre mayúsculas y minúsculas de caracteres duplicados. |
|
Representación de cadena del valor flotante en intervalo cerrado para valores en escala de grises. |
|
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. |
|
Nombre de color X11/CSS4 que no distingue entre mayúsculas y minúsculas sin espacios. |
|
Nombre de color que no distingue entre mayúsculas y minúsculas de
la encuesta de color xkcd con |
|
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. |
|
Especificación de color "CN" donde Nota Matplotlib indexa el color en el momento del dibujo y el valor predeterminado es negro si el ciclo no incluye el color. |
|
|
Ver también
- Los siguientes enlaces proporcionan más información sobre los colores en Matplotlib.
Ejemplo de demostración de color
Lista de colores con nombre Ejemplo
"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 zorder
pará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 |
---|---|
|
|
|
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')
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()
Tiempo total de ejecución del script: (0 minutos 1.413 segundos)