Como criar gráficos com matplotlib em Python

Gráficos com matplotlib em Python

O matplotlib é uma biblioteca gráfica 2D, que contém uma grande coleção de módulos para trabalho com gráficos e visualização de dados em Python. 

Permite criar representações gráficas de dados de alta qualidade em vários formatos e também ambientes interativos, em inúmeras plataformas. Além de poder ser usado em scripts do Python, também pode ser empregado em Jupyter Notebooks, servidores de aplicação Web e em toolkits de interface gráfica, entre outros.

Com esta biblioteca podemos gerar gráficos de vários tipos, histogramas, scatterplots e muitos outros tipos de visualização de dados, usando poucas linhas de código (afinal, é Python!).

Neste artigo veremos como criar um gráfico simples usando matplotlib e seus módulos. Mas antes, vamos rever dois conceitos importantes que serão necessários: Plano Cartesiano e Geração de Listas em Python.

O Plano Cartesiano

Um plano cartesiano é, basicamente, uma representação gráfica que possui duas linhas numéricas: um eixo x (na horizontal) e um eixo y (na vertical), perpendiculares entre si.

O centro desse gráfico é chamado de Origem (O), e números no lado direito da origem no eixo x são positivos, e os à esquerda são negativos. Da mesma forma, números acima da origem no eixo y são positivos e números abaixo da origem, negativos.

Um ponto no gráfico é a combinação de um par de valores nos eixos x e y. Esse par de valores é chamado de coordenadas, estabelecendo a localização de um ponto qualquer.

A figura a seguir mostra um plano cartesiano com um ponto plotado (na cor roxa), na posição (2,3), que significa valor 2 no eixo x e valor 3 no eixo y:

O plano de coordenadas cartesiano

Plano de coordenadas cartesiano. Gerado em https://www.oliverboorman.biz/projects/tools/cartesian_grid.php

Listas em Python

Usaremos listas para armazenar os dados que serão plotados nos gráficos. Assim, poderemos armazenar os valores dos eixos x e y que deverão ser plotados.

Antes disso, vamos relembrar como criar uma lista, acessar seus elementos individualmente e como iterar por eles.

Criar uma lista

Criamos uma lista atribuindo um conjunto de valores entre colchetes e separados por vírgulas a uma variável, como no exemplo a seguir:

minhaLista = [2, 5, 9, 12]

Criamos neste exemplo uma lista de nome minhaLista, contendo quatro elementos numéricos.

Acessar os elementos da lista

Para acessar um elemento de uma lista basta indicar o número da posição do elemento desejado, entre colchetes, logo após o nome da lista:

minhaLista[0]
minhaLista[3]

Nos dois exemplos acima, acessamos os elementos das posições 0 e 3 da lista. Lembre-se que o primeiro elemento de uma lista é sempre o elemento da posição 0, de modo que o elemento da posição 3 da lista acima é na verdade o quarto elemento armazenado.

Iteração em uma lista

Podemos iterar por uma lista, acessando todos os seus elementos sequencialmente, usando um laço for, como no exemplo a seguir:

for item in minhaLista:
    print(item)

Cada elemento da lista é atribuído à variável item em cada iteração, e seu valor é impresso na tela.

Agora que revisamos a criação de uma lista e o acesso a seus elementos, vamos ver como instalar o matplotlib em seu sistema.

Instalação do matplotlib

A instalação dos pacotes do matplotlib é muito simples. O site oficial da biblioteca é www.matplotlib.org

Instalação no Windows

Para instalar a biblioteca em um computador com Windows execute os seguintes comandos em um prompt:

python -m pip install -U pip
python -m pip install -U matplotlib

Instalação no Linux

Use o gerenciador de pacotes de sua distribuição para realizar a instalação do matplotlib no Linux. Por exemplo:

Debian / Ubuntu:

sudo apt install python3-matplotlib

Fedora:

sudo dnf install python3-matplotlib

Red Hat:

sudo yum install python3-matplotlib

Caso você esteja trabalhando com a distribuição Anaconda, não será necessário baixar e instalar o matplotlib, pois ele já vem instalado por padrão (além de trazer inúmeras outras ferramentas muito úteis para ciência de dados).

Mais informações sobre a instalação do matplotlib podem ser obtidas aqui: https://matplotlib.org/users/installing.html

Criar gráficos com matplotlib

Agora vamos criar gráficos com matplotlib efetivamente usando a biblioteca. Começamos criando duas listas para armazenar os dados dos eixos x e y que serão plotados no gráfico:

eixoX = [1, 2, 3, 4]
eixoY = [2, 5, 9, 12]

Usaremos o módulo pylab para realizar as operações necessárias à plotagem de um gráfico simples.

O PyLab é uma interface para a biblioteca Matplotlib, sendo um módulo pertencente à biblioteca. Este módulo importa o matplotlib.pyplot, para plotagem de gráficos, e o NumPy, para cálculos matemáticos e operações com arrays, em um namespace único.

Importar os módulos necessários:

from pylab import plot, show

Criar o gráfico:

plot(eixoX, eixoY)
show()

A função plot() cria o gráfico e o armazena em um objeto na memória; a função show() o mostra na tela.

Gráfico com matplotlib em Python

Note que, se você não executar a função show(), o gráfico será criado mas não será exibido na tela, ficando armazenado em memória.

Como marcar os pontos no gráfico

Para marcar os pontos no gráfico usamos o parâmetro marker na função plot():

plot(eixoX, eixoY, marker='o')

Gráfico com matplotlib em Python

O valor ‘o’ indica que os pontos serão pequenos círculos. podemos também marcar apenas os pontos no gráfico, sem as linhas que os conectam, da seguinte forma:

plot(eixoX, eixoY, 'o')

Como plotar mais de uma linha no mesmo gráfico

Vamos criar um gráfico que mostre as temperaturas máxima e mínima ao longo dos meses em um determinado local. Precisaremos de três listas:

meses = ['Jan', 'Fev', 'Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez']
Tmax = [38,39,32,29,26,22,19,15,20,22,25,27]
Tmin = [23,23,22,21,19,16,12,10,16,21,22,22]

Agora passamos as listas em pares meses/temperaturas para a função plot():

from pylab import plot, show, legend
plot(meses,Tmax,meses,Tmin)
legend(['Tmax','Tmin'])
show()

Note que uma cor diferente para cada linha é escolhida automaticamente, para indicar que cada linha corresponde a um conjunto de dados.

Note que também importamos o módulo legend, que nos permitirá adicionar uma legenda ao gráfico, de modo a sabermos qual linha corresponde a qual dado. A função legend() recebe uma lista de nomes como argumento, e usará essa lista para criar a legenda, com os nomes passados correspondendo às listas de valores plotadas no gráfico, em ordem.

A função legend() deve ser executada após a função plot() para funcionar.

Gráfico com matplotlib em Python

Podemos adicionar um título e rótulos aos eixos x e y do gráfico. Para isso usamos as funções title(), xlabel() e ylabel(), que devem ser importadas a partir de seus módulos. Por exemplo, vamos adicionar rótulos e um título ao nosso gráfico:

from pylab import plot, show, legend, title, xlabel, ylabel
meses = ['Jan', 'Fev', 'Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez']
Tmax = [38,39,32,29,26,22,19,15,20,22,25,27]
Tmin = [23,23,22,21,19,16,12,10,16,21,22,22]
plot(meses,Tmax,meses,Tmin)
title('Temperaturas Máximas e Mínimas do Ano')
xlabel('Mês')
ylabel('Temp/°C')
legend(['Tmax','Tmin'])
show()

Gráfico com matplotlib em Python

Finalmente, vamos configurar os valores máximo e mínimo de cada eixo. Por exemplo, queremos que o eixo y (temperaturas) mostre temperaturas entre 0 e 45 °C. Para isso, usamos a função axis() (importar o módulo axis também):

from pylab import plot, show, legend, title, xlabel, ylabel, axis

Adicionar a Função ao código anterior:

axis(ymin=0,ymax=45)

Resultado:

Gráfico com matplotlib em Python

De forma similar, podemos também usar os parâmetros xmin e xmax na função axis() para determinar os limites numéricos máximo e mínimo no eixo x.

É isso aí! Nesta lição vimos como criar um gráfico bem básico – mas informativo – usando um módulo da biblioteca matplotlib. Na próxima lição vamos nos aprofundar na criação de gráficos mais especializados e em configurações mais complexas destes gráficos.

Até lá!. 

Sobre Fábio dos Reis (1221 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.

1 Comentário em Como criar gráficos com matplotlib em Python

  1. Interessante conteudo. Você saberia me dizer como plotar o gráfico usando a vírgula commo separador decimal?

Escreva um comentário

Seu e-mail não será divulgado


*