domingo, 3 de maio de 2020

Função bar com colormaps

Função bar com colormaps


Muitas funções da biblioteca matplotlib tem suporte ao uso de mapas de cores. Uma dessas funções e a função scatter (E outras que veremos nos próximos tutoriais). Infelizmente a função bar não possui suporte ao uso de colormaps. Mas isso não significa que não podemos usar um mapa de cores para definir as cores das barras da função bar.
A biblioteca matplotlid fornece funções para gerar uma lista de cores a partir de um colormap. E com essa lista de cores podemos passar para o parâmetro color da função. Assim, não é necessário que uma função tenha suporte ao uso de colormaps para podemos usar um colormap.

Como usar colormaps com a função bar

Assim como fizemos no exemplo anterior, vamos usar o módulo matplotlib.cm. Mas com uma diferença: vamos utilizar o objeto diretamente, em vez de permitir que uma função faça a renderização das cores automaticamente. Também vamos precisar importar o módulo matplotlib.colors. Esse módulo contêm funções para criação de cores e manipulação. Como veremos a seguir:
Exemplo
import numpy as np
import matplotlib.cm as cm
import matplotlib.colors as col
import matplotlib.pyplot as plt

dados = np.random.randint(99, size = 50)
mapa_cores = cm.ScalarMappable(col.Normalize(0, 99), cm.winter)
plt.bar(np.arange(len(dados)), dados, color = mapa_cores.to_rgba(dados))
plt.show()
Executando o código acima o resultado deve ser um gráfico com barras parecido com esse:

Como funciona…

Primeiro criamos uma matriz com cinquenta números aleatórios entre zero e noventa e nove. Depois criamos uma lista de cores escalar com as cores normalizadas do mapa de cores winter. Depois a função to_rgba converte a lista de valores para uma lista de cores. Desse jeito usamos um colormap na função bar, mesmo que a função não tenha suporte a colormaps.

0 comentários:

Postar um comentário