Gráficos básicos com a biblioteca Matplotlib em Python
Gráficos básicos com a biblioteca matplotlib em Python
O Matplotlib é uma biblioteca Python usada para criar visualizações estáticas, animadas e interativas em Python. É uma ferramenta poderosa para visualização de dados e é amplamente utilizada em pesquisa científica, análise de dados e aprendizado de máquina. Vejamos como podemos criar alguns tipos de gráficos simples com o Matplotlib:
Instalação do Matplotlib
A biblioteca Matplotlib está incluída em muitas distribuições do Python, como Anaconda ou Miniconda, mas se você não o tiver instalado, poderá instalá-lo usando um gerenciador de pacotes como o pip ou o conda. Para instalar com pip, abra um terminal ou prompt de comando e digite:
pip install matplotlib
Isso instalará a versão mais recente do Matplotlib.
Importar o Matplotlib
Para usar Matplotlib em seu script Python, você precisa importar a biblioteca. Para importar o Matplotlib:
import matplotlib.pyplot as plt
Importamos a biblioteca com um alias plt por conveniência, pois é o módulo mais usado na biblioteca.
Pyplot
O pyplot é um submódulo do Matplotlib que fornece uma interface conveniente para criar e personalizar gráficos. Trata-se de uma coleção de funções que simplificam o processo de criação e modificação de gráficos, sem ter que se preocupar com os detalhes subjacentes da biblioteca Matplotlib.
Ao importar matplotlib.pyplot, importamos esta coleção de funções, que inclui as funções:
- plot(): Cria um gráfico de linha ou gráfico de dispersão.
- hist(): Cria um histograma.
- scatter(): Cria um gráfico de dispersão.
- bar(): Cria um gráfico de barras.
- pie(): Cria um gráfico de pizza.
- xlabel(): define o rótulo para o eixo x.
- ylabel(): define o rótulo para o eixo y.
- title(): Define o título do gráfico.
- legend(): Adiciona uma legenda ao gráfico.
- xlim(): Define os limites para o eixo x.
- ylim(): Define os limites para o eixo y.
e muitas outras.
O módulo pyplot fornece muitas outras funções para personalizar gráficos, como definir a cor, estilo de linha, marcador e tamanho de linhas e pontos, controlar os limites do eixo e adicionar anotações de texto. Ao importar matplotlib.pyplot como plt, podemos usar essas funções para criar e personalizar gráficos de maneira fácil e eficiente no código Python.
Plotagem básica com Matplotlib
O Matplotlib pode ser usado para criar muitos tipos de gráficos, incluindo gráficos de linhas, gráficos de dispersão, gráficos de barras e histogramas. Vejamos como criar um gráfico de linha simples:
import matplotlib.pyplot as plt # Data x = [1, 2, 3, 4] y = [1, 4, 9, 16] # Criar uma figura e um eixo fig, ax = plt.subplots() # Plotar os dados ax.plot(x, y) # Mostrar o gráfico plt.show()
Resultado:
![Gráfico de linha simples com matplotlib Gráfico de linha simples com matplotlib](http://www.bosontreinamentos.com.br/wp-content/uploads/2023/03/grafico-linhas-simples-matplotlib.png)
Gráfico de linha simples com matplotlib. Criado no JupyterLab
Neste exemplo, primeiro definimos os dados como duas listas x e y. Em seguida, criamos uma figura e um eixo usando a função plt.subplots(). Por fim, plotamos os dados usando a função ax.plot() e exibimos o gráfico usando a função plt.show().
Personalização de plotagens
A biblioteca Matplotlib permite que você personalize seus gráficos de várias maneiras, como alterar a cor, o estilo e os rótulos do gráfico. Vejamos como personalizar o gráfico anterior:
import matplotlib.pyplot as plt # Dados x = [1, 2, 3, 4] y = [1, 4, 9, 16] # Criar uma figura e um eixo fig, ax = plt.subplots() # Plotar os dados com as personalizações ax.plot(x, y, color='red', linestyle='--', marker='o', label='dados') # Adicionar rótulos e título ax.set_xlabel('Rótulo X') ax.set_ylabel('Rótulo Y') ax.set_title('Título') # Incluir uma legenda ax.legend() # Mostrar o gráfico plt.show()
Resultado
![Gráfico de linha com dados adicionais Gráfico de linha com dados adicionais](http://www.bosontreinamentos.com.br/wp-content/uploads/2023/03/grafico-linhas-simples-personalizado-matplotlib.png)
Gráfico de linha com dados adicionais
Neste exemplo, adicionamos personalizações ao gráfico especificando a cor, o estilo de linha e o marcador do gráfico usando os parâmetros de cor, estilo de linha e marcador. Também adicionamos um rótulo ao gráfico usando o parâmetro rótulo, que posteriormente incluímos na legenda usando a função ax.legend(). Por fim adicionamos rótulos de eixo e um título ao gráfico usando as funções ax.set_xlabel(), ax.set_ylabel() e ax.set_title(), respectivamente.
Gráfico de Barras com matplotlib
import matplotlib.pyplot as plt # Dados em uma lista rótulos = ['Maçãs', 'Laranjas', 'Bananas', 'Uvas', 'Figos'] valores = [5, 3, 6, 4, 7] # Criar uma figura e eixos fig, ax = plt.subplots() # Criar o gráfico de barras ax.bar(rótulos, valores) # Inserir rótulos de dados e título do gráfico ax.set_xlabel('Fruta') ax.set_ylabel('Quantidade') ax.set_title('Quantidades de Frutas') # Exibir o gráfico plt.show()
Resultado
![Gráfico de Barras simples em Python com matplotlib Gráfico de Barras simples em Python com matplotlib](http://www.bosontreinamentos.com.br/wp-content/uploads/2023/03/grafico-barras-matplotlib-python.png)
Gráfico de Barras simples em Python com matplotlib
Neste exemplo, primeiro definimos os dados como duas listas: rótulos e valores. Em seguida, criamos uma figura e um eixo usando a função plt.subplots() e criamos um gráfico de barras usando a função ax.bar().
Em seguida, adicionamos rótulos de eixo e um título ao gráfico usando as funções ax.set_xlabel(), ax.set_ylabel() e ax.set_title(), respectivamente. Por fim, exibimos o gráfico usando a função plt.show().
Isso criará um gráfico de barras simples com cinco barras, denominadas ‘Maçãs’, ‘Laranjas’, ‘Bananas’, ‘Uvas’ e ‘Figos’, com alturas proporcionais aos valores correspondentes na lista de valores. Para criar um gráfico de barras horizontais basta alterar a função ax.bar() para ax.barh(), mantendo os mesmos parâmetros e configurações.
Você pode personalizar ainda mais o gráfico ajustando a cor, a largura e outras propriedades das barras, bem como adicionando outros elementos do gráfico, como uma legenda ou anotações.
Scatterplot (Gráfico de Dispersão) com matplotlib
import matplotlib.pyplot as plt import numpy as np # Gerar um conjunto de dados aleatórios np.random.seed(123) x = np.random.normal(0, 1, 50) y = np.random.normal(0, 1, 50) # Criar figura e eixo fig, ax = plt.subplots() # Criar o gráfico de dispersão ax.scatter(x, y) # Inserir rótulos de dados e título ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_title('Scatterplot') # Exibir o gráfico plt.show()
Resultado
![Gráfico de Dispersão com matplotlib (Scatterplot) Gráfico de Dispersão com matplotlib (Scatterplot)](http://www.bosontreinamentos.com.br/wp-content/uploads/2023/03/grafico-de-dispersao-scatterplot-matplotlib.png)
Gráfico de Dispersão com matplotlib (Scatterplot)
Neste exemplo, primeiro geramos dados aleatórios usando a função random.normal() do módulo NumPy, com média 0 e desvio padrão 1, para x e y. Em seguida, criamos uma figura e um eixo usando a função plt.subplots() e criamos um gráfico de dispersão usando a função ax.scatter().
Em seguida, adicionamos rótulos de eixo e um título ao gráfico usando as funções ax.set_xlabel(), ax.set_ylabel() e ax.set_title(), respectivamente. Por fim, exibimos o gráfico usando a função plt.show().
Isso criará um gráfico de dispersão com 50 pontos, onde as coordenadas x e y de cada ponto são geradas aleatoriamente a partir de uma distribuição normal. Você pode personalizar ainda mais o gráfico ajustando o tamanho, a cor e outras propriedades dos pontos, bem como adicionando outros elementos do gráfico, como uma linha de tendência ou anotações.
Gráfico de pizza
import matplotlib.pyplot as plt # Dados rotulos = ['Maçãs', 'Laranjas', 'Bananas', 'Uvas', 'Figos'] tamanhos = [25, 30, 20, 25, 27] cores = ['red', 'orange', 'yellow', 'blue', 'purple'] # Criar figura e eixos fig, ax = plt.subplots() # Criar um gráfico de pizza ax.pie(tamanhos, labels=rotulos, colors=cores, autopct='%1.1f%%') # Adicionar título ax.set_title('Distribuição das Frutas') # Mostrar o gráfico plotado plt.show()
Resultado
![Gráfico de Pizza usando a biblioteca matplotlib em Python Gráfico de Pizza usando a biblioteca matplotlib em Python](http://www.bosontreinamentos.com.br/wp-content/uploads/2023/03/grafico-pizza-matplotlib-python.png)
Gráfico de Pizza usando a biblioteca matplotlib em Python
Neste exemplo, definimos os dados como três listas: rótulos, tamanhos e cores. labels contém os rótulos de cada fatia do gráfico de pizza, os tamanhos contêm os tamanhos correspondentes de cada fatia e as cores contêm as cores de cada fatia.
Em seguida, criamos uma figura e um eixo usando a função plt.subplots() e criamos um gráfico de pizza usando a função ax.pie(). Passamos tamanhos, rótulos e cores como argumentos para ax.pie() e usamos o argumento autopct para especificar o formato dos rótulos de cunha (neste caso, para exibi-los como porcentagens com uma casa decimal).
Em seguida, adicionamos um título ao gráfico usando a função ax.set_title() e exibimos o gráfico usando a função plt.show().
Isso irá criar um gráfico de pizza com cinco fatias denominadas ‘Maçãs’, ‘Laranjas’, ‘Bananas’, ‘Uvas’ e ‘Figos’, com tamanhos proporcionais aos valores correspondentes na lista de tamanhos. Você pode personalizar ainda mais a plotagem ajustando a cor, a largura e outras propriedades das fatias, bem como adicionando outros elementos de plotagem, como uma legenda ou anotações.
A lista completa com os nomes das cores que podem ser utilizadas em gráficos com a biblioteca matplotlib pode ser obtida aqui: List of named colors.
Exercício
Vamos criar um gráfico com matplotlib que mostre três linhas de dados, representando a evolução dos preços de três ações: Companhia Vale, Unipar Carbocloro e Banco do Brasil (códigos VALE5, UNIP6 e BBAS3) em um período de 12 dias.
Os preços serão fornecidos por meio de listas de valores.
import matplotlib.pyplot as plt # Dados (cotações diárias das ações) dias = list(range(1, 13)) vale5 = [82.2, 79.2, 84.0, 86.4, 84.8, 87.2, 88.8, 92.0, 89.6, 92.8, 95.2, 93.6] unip6 = [75.0, 73.2, 75.6, 77.4, 78.2, 76.8, 78.0, 81.0, 82.2, 83.6, 83.4, 82.2] bbas3 = [28.3, 27.9, 28.5, 29.2, 29.0, 29.4, 29.7, 30.1, 29.8, 30.2, 30.5, 30.3] # Criar figura e eixos fig, ax = plt.subplots() # Plotar os dados ax.plot(dias, vale5, label='VALE5') ax.plot(dias, unip6, label='UNIP6') ax.plot(dias, bbas3, label='BBAS3') # Mostrar os rótulos dos eixos e a legenda do gráfico ax.set_xlabel('Dia') ax.set_ylabel('Preço (R$)') ax.legend() # Exibir o gráfico pronto plt.show()
Resultado
![Gráfico de preços de ações usando matplotlib Gráfico de preços de ações usando matplotlib](http://www.bosontreinamentos.com.br/wp-content/uploads/2023/03/grafico-acoes-matplotlib-vale5-unip6-bbas3.png)
Gráfico de preços de ações usando matplotlib
Neste exemplo, primeiro definimos os dados para as três ações como listas de preços em um período de 12 dias. Em seguida, criamos uma figura e um eixo usando plt.subplots() e plotamos cada uma das três linhas usando ax.plot(). Também definimos os rótulos e a legenda do eixo usando ax.set_xlabel(), ax.set_ylabel() e ax.legend().
Por fim, mostramos o gráfico usando plt.show(). Isso exibirá um gráfico de linhas com três linhas, cada uma representando a evolução dos preços de uma das três ações no período de 12 dias.
Conclusão
Neste tutorial mostrei como criar alguns tipos de gráficos simples usando a biblioteca matplotlib. Vimos que esta biblioteca é bastante versátil, e permite a plotagem de gráficos de forma simples e com pouco código.
Existem muitos outros tipos de gráficos que podem ser criados com o uso do módulo matplotlib em Python, inclusive gráficos avançados e complexos, como histogramas, mapas de calor, boxplots e gráficos 3D, entre outros. Uma lista completa pode ser consultada na página da documentação oficial: Tipos de Gráficos com Matplotlib.
Conteúdo muito bem explicado. Parabéns.
Obrigado Ricardo!