Bóson Treinamentos em Ciência e Tecnologia

Como criar gráficos com matplotlib em Python

Como criar um gráfico 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:

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.

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')

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.

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()

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:

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

Sair da versão mobile