Matplotlib é uma ferramenta essencial na linguagem Python, amplamente utilizada por profissionais de Machine Learning para gerar representações visuais de dados, tanto estáticas quanto interativas.
Explorando o Matplotlib
Criado por John D. Hunter em 2003, o Matplotlib foi lançado em 8 de maio de 2021 e atualmente está na versão 3.4.2.
Esta biblioteca é desenvolvida principalmente em Python, com partes escritas em Objective-C e JavaScript, o que garante sua compatibilidade com diversas plataformas.
O Matplotlib utiliza o NumPy, uma extensão numérica do Python. Essa integração fortalece sua posição como uma alternativa de código aberto, oferecendo uma solução mais acessível em comparação com o MATLAB.
Em aplicações Python com interface gráfica, o Matplotlib possibilita a criação de gráficos estáticos através de sua API orientada a objetos.
Com apenas algumas linhas de código Python, é possível visualizar dados usando uma variedade de gráficos, como gráficos de dispersão, histogramas, gráficos de barras, gráficos de pizza, gráficos de linha e diagramas de caixa.
O Matplotlib pode ser utilizado em vários ambientes, incluindo o shell Python, notebooks Jupyter, e em IDEs como Pycharm ou Anaconda, além de servidores web como Flask e Django em diversas plataformas.
Assim como no MATLAB, o Matplotlib oferece controle detalhado sobre os gráficos, permitindo personalizar fontes, linhas, cores e estilos.
Após esta introdução à biblioteca Matplotlib, vamos explorar como configurá-la em nossos sistemas.
Configuração do Ambiente Matplotlib
Semelhante a outros pacotes e bibliotecas Python, o Matplotlib pode ser instalado em qualquer sistema operacional através do gerenciador de pacotes pip.
Para isso, é necessário que o Python e o pip estejam instalados em seu sistema.
Os comandos a seguir verificam a versão do Python e do pip para confirmar se essas ferramentas estão prontas para uso.
Verificação da Instalação do Python
python --version
Verificação da Instalação do pip
pip -V
Instalação do Matplotlib
O comando abaixo instala o pacote Matplotlib diretamente do Python Package Index (PyPI).
python -m pip install matplotlib
Este comando baixa e instala todos os pacotes necessários do Matplotlib. Uma mensagem de instalação bem-sucedida será exibida após a conclusão.
Para garantir que o Matplotlib foi instalado corretamente, execute o seguinte comando, que exibirá a versão do Matplotlib no prompt de comando.
import matplotlib matplotlib.__version__
Desenvolvedores que desejam instalar o Matplotlib sem compilação precisarão ter um compilador adequado em seu sistema, além das dependências, scripts de configuração, arquivos de configuração e patches.
No entanto, essa instalação não compilada do Matplotlib pode ser complexa, especialmente para iniciantes. Assim, a instalação via pip é mais recomendada pela sua simplicidade. 🤔
Após a instalação, importe o pacote para o seu ambiente para começar a utilizar suas funcionalidades.
Opções de Visualização do Matplotlib
O Matplotlib oferece diversas opções de visualização para apresentar dados, além de permitir personalizações com temas, cores e paletas variadas.
Essas opções de visualização incluem:
#1. Gráficos de Barras
Os gráficos de barras, ideais para comparar valores quantitativos dentro de uma mesma categoria.
O Matplotlib os representa com barras retangulares, onde o comprimento ou altura indicam os valores proporcionais. As barras podem ser dispostas horizontalmente ou verticalmente.
O Matplotlib utiliza a função plt.bar()
para criar esses gráficos.
Além disso, outras funções podem ser usadas para personalizar o gráfico, como plt.xlabel()
e plt.ylabel()
para adicionar rótulos aos eixos x e y, respectivamente. A função plt.title()
define o título do gráfico, enquanto plt.savefig()
salva o gráfico. A função plot.show()
, exibe o gráfico.
#2. Gráficos de Pizza
Gráficos de pizza são ideais para visualizar a distribuição proporcional de itens dentro de uma mesma categoria, em formato circular.
Esses gráficos mostram os dados em porcentagens, onde a área total do círculo representa a totalidade dos dados e cada fatia individual representa uma parte dessa porcentagem.
O Matplotlib utiliza a função plt.pie()
para criar e configurar os gráficos de pizza. Parâmetros como autopct
, que adiciona valores percentuais com uma casa decimal, são úteis na personalização do gráfico.
Gráficos de pizza são frequentemente utilizados em ambientes corporativos para apresentar informações sobre operações, vendas e recursos.
#3. Histogramas
Histogramas mostram a distribuição de dados numéricos, dividindo-os em intervalos contínuos.
A principal diferença entre histogramas e gráficos de barras é o tipo de dado manipulado. Histogramas lidam com dados contínuos, enquanto gráficos de barras lidam com dados categóricos.
O Matplotlib usa a função hist()
, que recebe um array de valores aleatórios ou definidos para criar o histograma.
#4. Gráficos de Linha
Gráficos de linha são ideais para mostrar a relação entre dois conjuntos de dados, definidos como numéricos e categóricos, utilizando um eixo X e Y.
Esses gráficos são úteis para acompanhar a variação dos valores ao longo do tempo.
#5. Gráficos de Dispersão
Gráficos de dispersão indicam a relação, incluindo a correlação, entre variáveis nos dados e auxiliam na identificação de outliers.
Utilizam pontos para representar a relação entre variáveis e como a alteração em uma variável pode afetar outra.
Como Criar Gráficos no Matplotlib
O Matplotlib usa funções específicas para cada tipo de gráfico, permitindo a criação com poucas linhas de código.
A seguir, veremos como criar diferentes tipos de gráficos usando as funções do Matplotlib.
#1. Gráfico de Barras no Matplotlib
Gráficos de barras, como já vimos, exibem categorias de dados através de barras em eixos, onde um eixo representa as categorias e o outro representa os valores correspondentes.
A função bar()
no Matplotlib utiliza diversos argumentos para descrever o layout das barras, conforme abaixo.
plt.bar(x, y, height, width, bottom, align)
Os parâmetros x e y representam os valores das coordenadas x e y das barras. O parâmetro width
define a largura da barra, enquanto height
define a altura.
Por exemplo, vamos representar o número de cães e gatos em um abrigo de animais chamado x.
import matplotlib.pyplot as plt import numpy as np x = ["Cats", "Dogs"] plt.xlabel("Cats and Dogs in Shelter") plt.ylabel("No. of animals in Shelter") plt.title("Number of cats and dogs in shelter x") y = [300, 350] plt.bar(x, y, color="black", width = 0.5)
Resultado:
Saída do gráfico de barras no Mathplotlib
Neste exemplo, especificamos a cor das barras com o atributo color
. Adicionalmente, plt.xlabel
e plt.ylabel
nomeiam os eixos x e y, enquanto plt.title
nomeia o gráfico.
#2. Como Criar um Gráfico de Pizza
O Matplotlib utiliza a função pie()
do módulo pyplot
para plotar gráficos de pizza. A função recebe os dados a serem plotados em formato de array.
Sintaxe:
matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)
O parâmetro colors
define as cores das fatias. Pode-se usar um array de valores para especificar cores diferentes para cada fatia.
O argumento autopct
adiciona as porcentagens numéricas a cada fatia. O argumento explode
aceita um array de valores, começando em 0.1, para definir a distância da fatia em relação ao centro do círculo.
Vamos criar um gráfico de pizza que mostre os recursos alocados para um projeto específico, em porcentagem.
import matplotlib.pyplot as plt import numpy as np y = np.array([25, 10, 45, 20]) mylabels = ["w", "x", "y", "z"] explodevalues = [0.1, 0.2, 0, 0] colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red'] plt.title("Resources allocated for a random project") plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct="%1.1f%%", shadow = True) plt.show()
Resultado:
Saída do gráfico de pizza no Mathplotlib
O gráfico acima exibe um gráfico de pizza com quatro fatias, com as legendas w, x, y e z. Os valores de explosão definem a distância de cada fatia em relação ao centro do círculo. No gráfico, x está mais longe do centro porque o valor da explosão é maior. O atributo shadow
adiciona uma sombra ao gráfico, enquanto autopct
define a porcentagem relativa de cada fatia.
#3. Criando um Gráfico de Histograma
Em um histograma, usaremos uma série de intervalos para representar a faixa de valores fornecidos no eixo x. O eixo y, por outro lado, representará as informações de frequência.
Criar um histograma no Matplotlib requer alguns passos pré-definidos, que incluem:
- Criar intervalos (bins) a partir do conjunto de dados. Pode-se usar a função
np.random.normal()
para gerar valores aleatórios. - Distribuir valores em um intervalo de valores.
- Contar os valores que caem em cada intervalo específico.
- Usar a função
matplotlib.pyplot.hist()
para criar o histograma.
A função hist()
aceita diversos parâmetros, como:
x
– Representa a sequência da matriz.
bins
– Parâmetro opcional que representa intervalos não sobrepostos de variáveis, podendo conter inteiros ou uma sequência String.
range
– Define o intervalo superior e inferior dos bins.
align
– Controla o alinhamento do histograma (esquerda, direita ou meio).
color
– Define a cor das barras.
rwidth
– Define a largura relativa das barras em relação ao bin.
log
– Define uma escala logarítmica no eixo do histograma.
O exemplo a seguir plota um histograma com os valores definidos.
from matplotlib import pyplot as plt x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5, 50, 60, 70, 80] plt.hist(x) plt.title('Histogram plot example') plt.xlabel('x axis') plt.ylabel('frequency') plt.show()
Resultado:
Saída do gráfico de histograma em Mathplotlib
#4. Gráfico de Linha no Matplotlib
O Matplotlib utiliza sua sub-biblioteca pyplot
, que oferece várias funções úteis para sua implementação.
Usamos a função plot()
, que é uma função genérica de pyplot
para plotar gráficos de linha e outros tipos de gráficos, incluindo gráficos curvos e com várias linhas. A criação desses gráficos depende dos valores passados para o eixo y.
Para plotar, importe matplotlib.pyplot
e Numpy
. O método plot(x, y)
cria o gráfico de linha, passando valores aleatórios para os argumentos x e y.
Além disso, pode-se passar uma variável de legenda que rotula o gráfico. A função title
define o título do gráfico, enquanto as funções xlabel
e ylabel
nomeiam os eixos. Finalmente, a função show()
exibe o gráfico.
Exemplo:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 5, 10) y = 3*x + 2 plt.title('Line plot example') plt.xlabel('x axis') plt.ylabel('y axis') plt.plot(x, y) plt.show()
Resultado:
Saída do gráfico de linha no Mathplotlib
O atributo np.linspace
retorna um conjunto de números uniformemente espaçados em um intervalo específico para os valores x, criando um array de 10 valores no intervalo de 0 a 5. Os valores de y são criados a partir da equação que usa os valores correspondentes de x.
Criando Gráficos de Dispersão
O Matplotlib utiliza o método scatter()
para criar este tipo de gráfico. O método aceita os seguintes parâmetros:
matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None)
Os parâmetros x_axis_data
e y_axis_data
não podem ser deixados em branco, enquanto os demais são opcionais e podem ter o valor None. x_axis_data
define um array de dados para o eixo x e y_axis_data
define um array de dados para o eixo y.
Um exemplo de gráfico de dispersão no Matplotlib:
import matplotlib.pyplot as plt x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16] y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35] plt.title('Scatter plot example') plt.xlabel('x variable') plt.ylabel('y variable') plt.scatter(x, y, c ="green") # To show the plot plt.show()
O resultado será:
Saída do gráfico de dispersão em Mathplotlib
O que é subplot()
no Matplotlib
A função subplot()
pode ser usada para desenhar vários gráficos em uma única figura do Matplotlib. Isso permite a visualização e comparação de vários gráficos na mesma figura.
Essa função retorna uma tupla com três argumentos: linhas e colunas como primeiro e segundo argumento, respectivamente, e o índice do gráfico atual como terceiro argumento.
Linhas e colunas definem o layout do Matplotlib.
Portanto, plt.subplot(2, 1, 1)
, por exemplo, irá plotar uma figura Matplotlib com duas linhas e uma coluna, sendo este o primeiro gráfico.
Enquanto plt.subplot(2, 1, 2)
exibirá um segundo gráfico com duas linhas e uma coluna.
A plotagem desses dois gráficos os cria um em cima do outro, como no exemplo abaixo.
import matplotlib.pyplot as plt import numpy as np #plot 1: x = np.array([2, 4, 6, 8]) y = np.array([3, 6, 9, 12]) plt.subplot(2, 1, 1) plt.plot(x,y) #plot 2: x = np.array([3, 6, 9, 12]) y = np.array([1, 2, 3, 4]) plt.subplot(2, 1, 2) plt.plot(x,y) plt.show()
A saída do exemplo acima será semelhante à imagem abaixo.
Usando um exemplo diferente, vamos usar a função subplot para plotar duas figuras com uma linha e duas colunas. Isso exibirá os gráficos lado a lado.
import matplotlib.pyplot as plt import numpy as np #plot 1: x = np.array([2, 4, 6, 8]) y = np.array([3, 6, 9, 12]) plt.subplot(1, 2, 1) plt.plot(x,y) #plot 2: x = np.array([3, 6, 9, 12]) y = np.array([1, 2, 3, 4]) plt.subplot(1, 2, 2) plt.plot(x,y) plt.show()
O exemplo acima exibirá o seguinte resultado.
Bem, isso foi interessantemente interativo, não acha? 😃
Considerações Finais
Matplotlib é uma biblioteca de visualização essencial no Python. Sua interatividade e facilidade de uso, mesmo para iniciantes, a tornam uma ferramenta poderosa para plotagem em Python.
Este artigo abordou exemplos dos diversos gráficos que o Matplotlib pode criar, incluindo gráficos de pizza, gráficos de barras, histogramas e gráficos de dispersão.
Obviamente, existem outras bibliotecas no Python que cientistas de dados e especialistas em Machine Learning podem usar para criar visualizações.
Você pode explorar ainda mais gráficos e funções do Matplotlib.
Bons plots! 📉📊