Série Bibliotecas: Matplotlib – como fazer plotagem em Python! Parte 1

Este tutorial do Matplotlib leva você através da visualização básica de dados Python: a anatomia de um gráfico, pyplot e pylab e muito mais.

Os seres humanos são criaturas muito visuais: entendemos melhor as coisas quando vemos as coisas visualizadas. No entanto, o passo para apresentar análises, resultados ou insights pode ser um gargalo: você pode nem saber por onde começar ou já deve ter o formato correto em mente, mas depois perguntas como “Essa é a maneira correta de visualizar os insights que eu quero trazer para o meu público?” definitivamente virá à sua mente.

Quando você está trabalhando com a biblioteca de plotagem Python Matplotlib, o primeiro passo para responder às perguntas acima é desenvolvendo conhecimento sobre tópicos como:

  • A anatomia de um gráfico Matplotlib – o que é um sub-gráfico ? O que são os eixos? O que exatamente é uma figura?
  • Criação de plotagem – o que poderia levantar questões sobre qual módulo você exatamente precisa importar (pylab ou pyplot?), Como exatamente deveria iniciar a figura e os eixos do seu plot, como usar o matplotlib nos blocos de anotações Jupyter, etc.
  • Rotinas de plotagem – desde maneiras simples de plotar seus dados até formas mais avançadas de visualização de dados.
  • Personalizações básicas de plotagem – com foco em legendas e texto, títulos, rótulos de eixos e layout de plotagem.
  • Salvando, mostrando, limpando… suas plotagens – mostre a plotagem, salve uma ou mais figuras em, por exemplo, arquivos pdf, limpe os eixos, limpe a figura ou feche a plotagem, etc.
  • Por fim, você abordará brevemente duas maneiras de personalizar o Matplotlib – com folhas de estilo e as configurações de rc.

Como é o gráfico de um Matplotlib Python?

À primeira vista, parece que existem alguns componentes a serem considerados quando você começa a plotar com esta biblioteca de visualização de dados Python. Você provavelmente concordará comigo que é confuso e às vezes até desanimador ver a quantidade de código necessária para alguns gráficos, sem saber por onde começar e quais componentes você deve usar.

Felizmente, esta biblioteca é muito flexível e possui muitos padrões internos úteis que o ajudarão tremendamente. Como tal, você não precisa de muito para começar: precisa fazer as importações necessárias, preparar alguns dados e pode começar a plotar com a ajuda da função plot()! Quando estiver pronto, não esqueça de mostrar seu gráfico usando a função show()

Veja abaixo este exemplo para ver como é fácil:

Série Bibliotecas 1Matplotlib

Observe que você importa o módulo pyplot da biblioteca  matplotlib sob o alias plt.

Após a importação da biblioteca, vai gerar o gráfico. Agora, vamos dar uma olhada no gráfico resultante com mais detalhes:

Grafico Matplotlib

Ótimo, não é?

Você pode usar os padrões internos que cuidam da criação dos componentes subjacentes, como a Figura e os Eixos. Você lerá mais sobre esses padrões na seção que trataremos das diferenças entre o pylab e o pyplot.

Por enquanto, você entenderá que trabalhar com o Matplotlib já ficará muito mais fácil quando você entender como os componentes subjacentes são instanciados. Ou, em outras palavras, como é a anatomia de um gráfico Matplotlib, veja:

Anatomia de um gráfico Matplotlib

Em essência, existem dois grandes componentes que você precisa levar em consideração:

  • Figura é a janela ou página geral em que tudo é desenhado. É o componente de nível superior de todos os que você considerará nos seguintes pontos. Você pode criar várias figuras independentes. Uma figura pode ter várias outras coisas, como um subtítulo, que é um título centralizado na figura. Você também descobrirá que pode adicionar uma legenda e uma barra de cores, por exemplo, à sua figura.
  • À figura você adiciona eixos . A eixos é a área sobre a qual os dados são representados graficamente com funções tais como plot()scatter() e que pode ter dobras, rótulos, etc, associados. Isso explica por que as figuras podem conter vários eixos.

Dica : Todos os métodos de um objeto Axes existem como uma função no módulo pyplot e vice-versa. Observe que, principalmente, você usará as funções do módulo pyplot porque elas são muito mais limpas, pelo menos para gráficos simples!

Você verá o que significa “limpo ou clean (em inglês)” quando examinar os seguintes trechos de código. Compare, por exemplo, este pedaço de código:

Modulo plypot limpa

Com o trecho de código abaixo:

Modulo plypot limpa trecho do codigo

O segundo pedaço de código é definitivamente mais limpo, não é?

No entanto, se você tiver vários eixos, ainda é melhor usar o primeiro bloco de código, porque é sempre melhor preferir explícito do que o código implícito! Nesses casos, você deseja fazer uso do objeto Axes ax.

Ao lado desses dois componentes, há mais alguns que você pode ter em mente:

  • Cada um dos eixos tem um eixo x e um de eixo y, que contêm os ticks, os quais têm ticklines e ticklabels maiores e menores. Há também os rótulos, o título e a legenda dos eixos a serem considerados quando você deseja personalizar seus eixos, mas também levando em consideração as escalas e as linhas de grade dos eixos que podem ser úteis.
  • Spines ou Espinhos são linhas que conectam as marcas de escala do eixo e que designam os limites da área de dados. Em outras palavras, eles são o quadrado preto simples que você vê quando não plota nenhum dado, mas quando inicializa os eixos, como na figura abaixo:
Spines dos eixos abertos

Você vê que os spines direito e superior estão definidos como invisíveis.

Note que você vai, por vezes, também ler sobre objetos Artist, que são praticamente todos os objetos que o pacote tem de ofertas para os usuários como você. Tudo desenhado usando o Matplotlib faz parte do módulo Artist. Os contêineres que você usará para plotar seus dados, como Eixo, Eixos e Figura e outros objetos gráficos, como texto, patches, etc. são tipos de Artists.

Matplotlib, pyplot e pylab: como eles estão relacionados?

Primeiro, você já conhece o Matplotlib. Quando você fala sobre “Matplotlib”, fala sobre todo o pacote de visualização de dados Python. Isso não deve ser uma grande surpresa para você 🙂

Em segundo lugar, pyplot é um módulo no pacote matplotlib. É por isso que você costuma ver matplotlib.pyplotno código. O módulo fornece uma interface que permite a criação implícita e automática de figuras e eixos para atingir o gráfico desejado.

Isso é especialmente útil quando você deseja plotar algo rapidamente sem instanciar figuras ou eixos, como você viu no exemplo na primeira seção deste tutorial. Veja bem, você não especificou explicitamente esses componentes, mas consegue gerar um gráfico que você personalizou! Os padrões são inicializados e quaisquer personalizações que você fizer serão feitas com a Figura e os eixos atuais em mente.

Por fim, pylab é outro módulo, mas é instalado junto com o pacote matplotlib. Ele importa em massa a biblioteca pyplot e a biblioteca numpy e geralmente é recomendado quando você trabalha com matrizes, pratica matemática interativamente e deseja acessar recursos de plotagem.

Você ainda pode ver isso aparecendo em tutoriais e exemplos antigos matplotlib, mas seu uso não é mais recomendado, especialmente quando você está usando o kernel IPython no seu Jupyter notebook

Como solução, você pode usar melhor a magia %matplotlib em combinação com o back-end correto, como inlineqt etc. Na maioria das vezes, você desejará usá-lo inline, pois isso garantirá que os gráficos sejam incorporados dentro do notebook.

Na próxima parte desta série, continuaremos explorando a anatomia de um gráfico, pyplot e pylab e muito mais.

Compartilhe

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp
Share on print
imprimir
Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on print

O que achou deste artigo?

Leia também