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. 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

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

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)

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

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

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.

 

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*