Desvendando o Matplotlib

Giovanni Angelo
Dados de Cientista
5 min readJan 7, 2021

--

Como dar os primeiros passos em visualização de dados em Python com o Matplotlib de forma simples e direta.

Se você está lendo este artigo há uma grande chance de você ser, ou almejar ser, um cientista de dados. E como nós sabemos faz parte da atribuição deste, representar de forma gráfica as informações extraídas por uma análise exploratória ou pelos modelos de machine learning utilizados por exemplo.

De fato um cientista de dados precisa saber lidar com #DataVisualization. E como sabemos há diversas formas de se apresentar uma informação, seja através de um gráfico rápido no excel ou até com soluções de milhares de reais que foram desenvolvidas especificamente com este fim.

Entretanto, hoje falaremos de algo que julgo ser mais poderoso (ou pelo menos mais flexível) que um gráfico de excel e mais barato (é de graça!) que essas soluções que custam muito mais do que o nosso salário poderia adquirir. Vamos falar da primeira camada de apresentação de dados com Python. Vamos desvendar o Matplotlib!

O que é o Matplotlib?

É uma iniciativa open source que segundo o site oficial possui a seguinte definição: Matplotlib é uma biblioteca abrangente para a criação de visualizações estáticas, animadas e interativas em Python.

Matplotlib é um projeto patrocinado da NumFOCUS, uma instituição de caridade sem fins lucrativos dos Estados Unidos. Eles oferecem ao Matplotlib o apoio fiscal, legal e administrativo para ajudar a garantir a saúde e sustentabilidade do projeto. Isso nos dá segurança de que o projeto é serio e não corre o risco de ser descontinuado de uma hora para outra.

Com ele podemos criar plots (traçar gráficos) de forma simples e poderosa. Ele nos permite criar diversos tipos de gráficos e personalizá-los em detalhes, além de possuir compatibilidade com uma gama de outras bibliotecas que estendem suas funções e aplicação.

Como funciona?

O matplotlib, assim como a própria linguagem Python, possui uma estrutura orientada a objetos com alguns elementos chaves para entendermos como uma imagem, no nosso caso um gráfico, é construído, são eles:

  • Figure — O objeto de matplotlib.figure.Figure é basicamente todo o espaço que poderá ser preenchido com alguma informação, seja a representação do gráfico em si ou até as informações adicionais como título, legendas e etc… Pense na figura como um quadro branco pronto para ser desenhado.
  • Axes — O objeto matplotlib.axes.Axes é o eixo onde os dados serão representados, geralmente correspondem aos eixos x e y, mas podem variar conforme o tipo de gráfico (x, y, z no gráfico 3D por exemplo). Uma figura pode conter vários eixos, mas um eixo pode estar em apenas uma figura.
  • Axis — Diferente do elemento anterior que representa o conjunto dos eixos ( x e y) o matplotlib.axis.Axis representa cada eixo individualmente. Ou seja através de XAxis acessamos apenas propriedades do eixo x, assim como YAxis acessa apenas o eixo y.
  • Artist — O matplotlib.artist.Artist é o pai de todos os elementos acima e é tudo que pode ser identificado em um gráfico, inclusive a figura e os eixos. Incluem ainda elementos de texto como legendas e títulos, além de outros elementos mais específicos como patch, collections e line2D.

Como usar?

Agora que conhecemos os principais elementos vamos dar uma olhada nos principais métodos utilizados para criarmos um gráfico. São eles:

  • pyplot.subplots() — Método para criar a figura e os eixos. Recebe como parâmetro a quantidade de linhas e colunas para criação de eixos, o parâmetro (2,2) cria uma matriz com 2 linhas e 2 colunas, ou seja, 4 eixos. Quando não são passados parâmetros o default é 1 eixo.
  • Axes.plot() — Método para adicionar dados ao eixo. Pode receber diversos parâmetros como a cor, legenda e outros mas precisa de pelo menos o conjunto de dados a ser plotado. Pode ser executado diferentes vezes com diferentes conjuntos de dados para o mesmo eixo.
  • Axes.set_title() — Método para adicionar um título ao eixo, recebe como parâmetro uma string com o texto a ser adicionado.
  • Axes.set_xlabel() / Axes.set_ylabel() — Método para adicionar os títulos dos eixos x e y respectivamente, recebe como parâmetro uma string com o texto a ser adicionado.
  • Axes.legends() — Método para adicionar a legenda dos dados plotados no gráfico, precisa que na plotagem tenham sido informados os labels.
  • pyplot.show() — Método para renderizar em tela o gráfico desenvolvido.

Exemplos

Primeiro precisamos importar o matplotlib no código, inicialmente o módulo pyplot é suficiente, sendo assim é comum usarmos o seguinte comando import matplotlib.pyplot as plt Vejamos alguns plots de exemplos:

import matplotlib.pyplot as pltfig, ax = plt.subplots() # Criando uma figura e um eixo.ax.set_title(“Título”) # Adicionando um título ao gráfico.
ax.set_xlabel(“Eixo X”) # Adicionando um título no eixo x.
ax.set_ylabel(“Eixo Y”) # Adicionando um título no eixo x.
Uma figura com apenas 1 eixo
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2, 100) #Criando dadosfig, ax = plt.subplots() ax.plot(x, x, label='linear') # Adicionando dados no eixo.
ax.set_xlabel('Eixo x')
ax.set_ylabel('Eixo y')
ax.set_title("Título")
ax.legend() # Criando a legenda
plt.show() #Renderizando a figura
Uma figura com 1 eixo e um conjunto de dados
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2, 100)fig, axs = plt.subplots(2,2,figsize=(8,6)) # Criando uma figura com 4 eixos com um tamanho de 8x6fig.text(0.4,0.95,"Texto da Figura", fontsize=15) #Adicionando um texto na figura com font tamanho 15 e posicionado em x=0.4 e y=0.95#Eixo 1 - Posição 0,0 na matriz
axs[0,0].plot(x,x, label = "Linear")
axs[0,0].set_title("Eixo 1")
#Eixo 2 - Posição 0,1 na matriz
axs[0,1].plot(x,x**2, label = "Quadrática")
axs[0,1].set_title("Eixo 2")
#Eixo 3 - Posição 1,0 na matriz
axs[1,0].plot(x,x**3, label = "Cúbica")
axs[1,0].set_title("Eixo 3")
#Eixo 4 - Posição 1,1 na matriz
axs[1,1].plot(x,x, label = "Linear")
axs[1,1].plot(x,x**2, label = "Quadrática")
axs[1,1].plot(x,x**3, label = "Cúbica")
axs[1,1].set_title("Eixo 4")
axs[1,1].legend()
plt.show()
Uma figura com 4 eixos e diferentes dados plotados

Conclusão

Visualização de Dados é uma habilidade fundamental para qualquer carreira de dados como também para qualquer empresa, é pelo sucesso de uma apresentação bem feita que ações são bem executadas e geram milhões ou pelo fracasso de uma apresentação que negócios podem perder tantos milhões quanto.

Não importa se sua apresentação é para conhecer um dataset ou pra ser apresentada para a diretoria da sua empresa, conhecer as ferramentas certas fazem toda a diferença para um trabalho bem feito. Essa foi apenas uma introdução ao Matplotlib e como dar os primeiros passos.

Se quiser saber mais confira a documentação neste link.

Se quiser ficar por dentro de outros artigos sobre Visualização de Dados, segue o dados-de-cientista pra crescermos juntos. E para acompanhar minha atividade profissional esse é o meu linkedin.

Grande abraço e até a próxima! 😉

--

--

Giovanni Angelo
Dados de Cientista

Cientista de Dados em formação | Coordenador de Sistemas | Administrador de Dados | Carioca