Seus próprios mapas de cores
Não estou interessado em todos os mapas de cores fornecidos? Ou você precisa de outros mapas coloridos sofisticados? Em caso afirmativo, você deve ler este post até o fim. Vou orientá-lo na personalização e criação de seus próprios mapas de cores.
Mas antes de personalizá-lo, Vou mostrar um exemplo de uso de mapas coloridos. Eu usei o ‘RdYlBu_r'Mapas de cores para visualizar meus dados.
Vamos modificar seus próprios mapas de cores.
Em primeiro lugar, precisamos criar dados simulados que serão exibidos, usando este código
# importar algumas bibliotecas / módulos importar numpy como np import matplotlib.pyplot as plt# criar dados fictícios data = np.random.random([100, 100]) * 10
A variável de dados é uma matriz que consiste em 100 x 100 números aleatórios de 0 al 10. Você pode verificar escrevendo este código.
Depois disso, vamos mostrar os dados simulados com mapas de cores padrão usando o código simples abaixo.
plt.figure(figsize =(7, 6))plt.pcolormesh(dados) plt.colorbar()
O código mostrará uma figura como esta.
Como eu mencionei antes, se você não definiu os mapas de cores que usou, você obterá os mapas de cores padrão, chamado ‘viridis‘.
A seguir, Vou mudar os mapas de cores de ‘viridis'uma’ mapas de cores do inferno com este código-
plt.pcolormesh(dados, cmap = 'inferno')
Você obterá o resultado assim. Viridis
Modificar mapas de cores
Agora, para modificar os mapas de cores, você precisa importar as seguintes sub-bibliotecas para Matplotlib.
de matplotlib import cm
from matplotlib.colors import ListedColormap,LinearSegmentedColormap
Para modificar o número da classe de cores em seus mapas de cores, você pode usar este código
new_inferno = cm.get_cmap('inferno', 5)# visualize com os mapas de cores new_inferno plt.pcolormesh(dados, cmap = new_inferno) plt.colorbar()
e você obterá um resultado como este
A próxima coisa é modificar a cor do intervalo em um mapa de cores. Vou te dar um exemplo em mapas de cores ‘hsv’. Você precisa entender a gama de cores com esta figura.
Se quisermos usar apenas a cor verde (aproximadamente 0.3) para a cor azul (0.7), podemos usar o seguinte código.
# hsv modificado em 256 classe de cor hsv_modified = cm.get_cmap('hsv', 256)# criar novos mapas de cores hsv na faixa de 0.3 (verde) para 0.7 (azul) newcmp = ListedColormap(hsv_modified(por exemplo, linspace(0.3, 0.7, 256)))# mostrar figura plt.figure(figsize =(7, 6)) plt.pcolormesh(dados, cmap = newcmp) plt.colorbar()
Isso vai te dar uma figura como esta
Criação de seus próprios mapas de cores
Para criar seus próprios mapas de cores, existem pelo menos dois métodos. Primeiro, você pode combinar dois mapas de cores sequenciais no Matplotlib. Em segundo lugar, você pode selecionar e combinar sua cor favorita em RGB para criar mapas de cores.
Daremos a você uma demonstração da combinação de dois mapas de cores sequenciais para criar um novo mapa de cores. Queremos combinar 'laranjas’ e 'azul'.
Você pode ler este código com atenção.
# estabelecer mapas de cores superior e inferior top = cm.get_cmap('Oranges_r', 128) # r significa versão reversa bottom = cm.get_cmap('Blues', 128)# combine tudo newcolors = np.vstack((principal(por exemplo, linspace(0, 1, 128)), fundo(por exemplo, linspace(0, 1, 128))))# crie um novo mapa de cores com o nome OrangeBlue orange_blue = ListedColormap(newcolors, nome ="OrangeBlue")
Se você visualizar os dados simulados usando mapas de cores ‘OrangeBlue’, você terá uma figura como esta.
O próximo passo é criar um mapa de cores de duas cores diferentes que você gosta. Para este caso, Vou tentar criá-lo da cor amarela e vermelha como mostrado na próxima imagem.
Primeiro, você precisa criar mapas amarelos
# criar mapas de cores amarelosN = 256amarelo = np.ones((N, 4))amarelo[:, 0] = por exemplo, linspace(255/256, 1, N) # R = 255 amarelo[:, 1] = por exemplo, linspace(232/256, 1, N) # G = 232 amarelo[:, 2] = por exemplo, linspace(11/256, 1, N) # B = 11yellow_cmp = ListedColormap(amarelo)
e mapas vermelhos
vermelho = np.ones((N, 4))vermelho[:, 0] = por exemplo, linspace(255/256, 1, N) vermelho[:, 1] = por exemplo, linspace(0/256, 1, N) vermelho[:, 2] = por exemplo, linspace(65/256, 1, N)red_cmp = ListedColormap(vermelho)
A exibição do mapa amarelo e vermelho que você criou é mostrada na próxima imagem