Mapas de calor e barras coloridas em matplotlib

Mapas de calor e barras coloridas em matplotlib
A visualização de dados é uma das etapas mais cruciais da ciência de dados (ou qualquer outra ciência, para esse assunto). Nós, como humanos, somos pobres em entender as fileiras e linhas de números. É por isso que é sempre útil ter uma utilidade como o matplotlib para nos ajudar a desenvolver uma intuição visual do que está acontecendo quando, digamos, um algoritmo de aprendizado de máquina está classificando enormes quantidades de dados.

Enquanto os gráficos que mostram relação entre duas variáveis ​​como altura e peso podem ser facilmente plotados em uma tela plana, como mostrado abaixo, as coisas ficam realmente confusas quando temos mais de dois parâmetros.

É quando as pessoas tentam mudar para as parcelas 3D, mas elas geralmente são confusas e desajeitadas, o que derrota todo o objetivo da visualização de dados. Precisamos de mapas de calor para visuais.

O que são mapas de calor?

Se você olhar para a imagem de uma câmera térmica, poderá ver um mapa de calor literal. A câmera de imagem térmica representa uma temperatura diferente como cores diferentes. O esquema para colorir atrai nossa intuição de que o vermelho é uma "cor quente" e leva azul e preto para representar superfícies frias.

Essa visão de Marte é um bom exemplo, onde as regiões frias são de cor azul, enquanto as regiões mais quentes são amplamente vermelhas e amarelas. A barra colorida na imagem mostra qual cor representa que temperatura.

Usando o matplotlib, podemos associar a um ponto (x, y) no gráfico com uma cor específica representando a variável que estamos tentando visualizar. Não precisa ser temperatura, pode ser qualquer outra variável. Nós também exibiremos um Barra de cor ao lado dele para indicar os usuários o que diferentes cores significam.

Muitas vezes, você veria pessoas mencionando mapas de colméias em vez de mapas de calor. Estes são frequentemente usados ​​de forma intercambiável. Colormap é um termo mais genérico.

Instalação e importação de matplotlib e pacotes relacionados

Para começar com Matplotlib, verifique se você tem Python (de preferência Python 3 e Pip) instalado. Você também precisará Numpy, Scipy e Pandas Para trabalhar com conjuntos de dados. Como vamos traçar uma função simples, apenas dois dos pacotes Numpy e matplotlib vão ser necessários.

$ pip install matplotlib numpy
#ou se você tiver python dois e três instalados
$ pip3 install matplotlib numpy

Depois de instalar as bibliotecas, você precisa garantir que elas sejam importadas em seu programa Python.

importar numpy como np
importar matplotlib.pyplot como plt

Agora você pode usar as funções fornecidas por essas bibliotecas usando sintaxe como NP.Numpyfunction ()e plt.Algumotherfunção ().

Alguns exemplos

Vamos começar com a plotagem de uma função matemática simples que leva pontos em um avião (suas coordenadas X e Y) e atribui um valor a eles. A captura de tela abaixo mostra a função junto com o gráfico.

As cores diferentes representam valores diferentes (conforme indicado pela escala ao lado do gráfico). Vejamos o código que pode ser usado para gerar isso.

importar numpy como np
importar matplotlib.pyplot como plt
# Função matemática que precisamos plotar
def z_func (x, y):
retornar (1 - (x ** 2 + y ** 3)) * NP.exp (-(x ** 2 + y ** 2) / 2)
# Configurando valores de entrada
x = np.ARANGE (-3.0, 3.0, 0.1)
y = np.ARANGE (-3.0, 3.0, 0.1)
X, y = np.Meshgrid (x, y)
# Calculando a saída e armazenando -a na matriz z
Z = z_func (x, y)
im = plt.imshow (z, cmap = plt.cm.Rdbu, extensão = ( -3, 3, 3, -3),
interpolação = 'bilinear')
plt.Colorbar (IM)
plt.title ('$ z = (1-x^2+y^3) e^-(x^2+y^2)/2 $')
plt.mostrar()

A primeira coisa a perceber é que importamos apenas matplotlib.Pypot uma pequena parte de toda a biblioteca. Como o projeto é bastante antigo, ele tem muitas coisas acumuladas ao longo dos anos. Por exemplo, matplotlib.Pyplot era popular naquela época, mas agora é apenas uma relíquia histórica e a importar apenas adiciona mais inchaço ao seu programa.

Em seguida, definimos a função matemática que desejamos plotar. São necessários dois valores (x, y) e retorna o terceiro valor z. Nós definimos a função ainda não a usava.

A próxima seção assume a tarefa de criar uma variedade de valores de entrada, usamos Numpy para isso, embora você possa usar a construção em faixa() função para isso se quiser. Uma vez que a lista de valores x e y é preparada (variando de negativo 3 a 3), calculamos o valor z a partir dele.

Agora que calculamos nossas entradas e saídas, podemos plotar os resultados. O plt.imshow () diz a Python que a imagem vai se preocupar com Z, que é a nossa variável de saída. Ele também diz que vai ser um mapa de Color, um cmap, com azul vermelho (Rdbu) escala que se estende de -3 a 3 em qualquer um eixo. O interpolação O parâmetro torna o gráfico mais suave, artificialmente. Caso contrário, sua imagem ficaria bastante pixelizada e grossa.

Neste ponto, o gráfico é criado, mas não impresso. Em seguida, adicionamos a barra colorida no lado para ajudar a correlacionar diferentes valores de z com cores diferentes e mencionar a equação no título. Estes são feitos em etapas plt.Colorbar (IM) e plt.título(… ). Finalmente, chamar a função nos mostra o gráfico na tela.

Reutilização

Você pode usar a estrutura acima para plotar qualquer outro colorido 2D. Você nem precisa se ater às funções matemáticas. Se você tiver enormes matrizes de dados em seu sistema de arquivos, talvez informações sobre uma determinada demografia ou qualquer outro dados estatístico, você pode conectar isso modificando o X, y Valores sem alterar a seção de mapa de colméias.

Espero que você tenha achado este artigo útil e se você gosta de conteúdo semelhante, informe -nos.