Observação
Clique aqui para baixar o código de exemplo completo
Especificando Cores #
Matplotlib reconhece os seguintes formatos para especificar uma cor.
Formato |
Exemplo |
---|---|
Tupla RGB ou RGBA (vermelho, verde, azul, alfa) de valores flutuantes em um intervalo fechado [0, 1]. |
|
Cadeia RGB ou RGBA sem distinção entre maiúsculas e minúsculas. |
|
Abreviação hexadecimal equivalente de cadeia de caracteres RGB ou RGBA sem distinção entre maiúsculas e minúsculas de caracteres duplicados. |
|
Representação de string do valor flutuante em intervalo fechado para valores em tons de cinza. |
|
Notação abreviada de um único caractere para algumas cores básicas. Observação As cores verde, ciano, magenta e amarelo não coincidem com as cores X11/CSS4. Suas tonalidades particulares foram escolhidas para melhor visibilidade das linhas coloridas contra fundos típicos. |
|
Nome da cor X11/CSS4 sem distinção entre maiúsculas e minúsculas e sem espaços. |
|
Nome da cor que não diferencia maiúsculas de minúsculas da
pesquisa de cores xkcd com |
|
Cores do Tableau que não diferenciam maiúsculas de minúsculas da paleta categórica 'T10'. Observação Este é o ciclo de cores padrão. |
|
Especificação de cor "CN" onde Observação O Matplotlib indexa a cor no momento do desenho e o padrão é preto se o ciclo não incluir a cor. |
|
|
Veja também
- Os links a seguir fornecem mais informações sobre cores no Matplotlib.
Exemplo de demonstração de cores
Lista de cores nomeadas Exemplo
"Vermelho", "Verde" e "Azul" são as intensidades dessas cores. Em combinação, eles representam o espaço de cores.
Matplotlib desenha artistas com base no zorder
parâmetro. Se não houver valores especificados, o padrão do Matplotlib é a ordem dos artistas adicionados aos eixos.
O alfa de um Artista controla a opacidade. Indica como a cor RGB do novo Artista se combina com as cores RGB já existentes nos Eixos.
Os dois Artistas combinam com a composição alfa. O Matplotlib usa a equação abaixo para calcular o resultado da combinação de um novo Artista.
RGB_{new} = RGB_{below} * (1 - \alpha) + RGB_{artist} * \alpha
Alfa de 1 indica que o novo Artista cobre completamente a cor anterior. O alfa de 0 para a cor superior não é visível; no entanto, contribui para a mistura de valores intermediários como resultado cumulativo de todos os Artistas anteriores. A tabela a seguir contém exemplos.
valor alfa |
Visual |
---|---|
|
|
|
Observação
A reordenação de artistas não é comutativa no Matplotlib.
Seleção de cores "CN" #
Matplotlib converte cores "CN" em RGBA ao desenhar artistas. A seção Estilizando com ciclador contém informações adicionais sobre o controle de cores e propriedades 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')
A primeira cor 'C0'
é o título. Cada plotagem usa a segunda e terceira cores de cada estilo rcParams["axes.prop_cycle"]
(padrão: ). Eles são e , respectivamente.cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])
'C1'
'C2'
Comparação entre as cores X11/CSS4 e xkcd #
As cores xkcd vêm de uma pesquisa de usuários realizada pelo webcomic xkcd .
95 dos 148 nomes de cores X11/CSS4 também aparecem na pesquisa de cores xkcd. Quase todos eles mapeiam para diferentes valores de cores no X11/CSS4 e na paleta xkcd. Apenas 'preto', 'branco' e 'ciano' são idênticos.
Por exemplo, 'blue'
mapeia para '#0000FF'
enquanto 'xkcd:blue'
mapeia para
'#0343DF'
. Devido a essas colisões de nomes, todas as cores xkcd têm o
'xkcd:'
prefixo.
O visual abaixo mostra as colisões de nomes. Os nomes das cores em que os valores das cores concordam estão em negrito.
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 total de execução do script: ( 0 minutos 1,413 segundos)