As 6 principais bibliotecas de visualização de dados para Python

Sem dúvida, o Python Package Index está repleto de bibliotecas adequadas para praticamente todas as visualizações de dados necessárias. Se você precisa de uma biblioteca intensamente focada na realização de uma tarefa específica ou de uma que possa ser usada para vários propósitos, o Python ajuda você a se proteger.

E, no entanto, considerando a enorme quantidade de bibliotecas concorrentes que os codificadores podem escolher atualmente, não surpreende que muitos acabem se sentindo perdidos no mar.
Essa situação levanta duas questões: como sabemos qual biblioteca nos servirá melhor? E, considerando a natureza de cada projeto, que método de visualização torna possível estruturar e retratar adequadamente grandes conjuntos de dados – e, assim, tornar as informações mais compreensíveis para o público?

Escolhendo a estrutura certa

De fato, navegar pelas opções aparentemente intermináveis ​​de plotagem de barras, plotagem de linhas, plotagem de dispersão e até gráfico de pizza pode parecer uma tarefa sísifa.
Não tema, no entanto.
Para economizar seu tempo e inúmeras horas de pesquisa, criamos este guia para ajudá-lo a entender algumas das bibliotecas de visualização mais populares. Por mais esmagador que pareça escolher uma estrutura que atenda às necessidades do seu projeto, lembre-se sempre de que a principal tarefa da boa visualização de dados é fornecer aos usuários informações sólidas de maneira compreensível e quase visceral – sem sacrificar um pelo outro.
Portanto, para ajudá-lo a encontrar o caminho certo, analisaremos rapidamente algumas das bibliotecas de visualização mais famosas e seus aplicativos, com base no projeto que você precisa realizar (com nossos próprios comentários):
  • Rede neural de ciência de dados. A grande maioria dos tutoriais para ciência de dados usa matplotlib . Essa biblioteca de visualização de uso geral é adequada para vários projetos, pois serve como base para a aplicação de outras estruturas sobre ela.
  • Regressão de dados ou modelo de classificação. É altamente provável que um codificador que faça regressão ou classificação gravite em direção ao Seaborn por causa de sua matriz de correlação. Como o nome sugere, o que essa matriz mostra – com apenas uma olhada – é se os elementos de dados têm um relacionamento ou conexão mútua.
  • Stock ticker⁠. Esse tipo de projeto normalmente requer um gráfico que pode plotar dados em tempo real e responder quando o usuário move o cursor sobre o gráfico. Nossas opções recomendadas aqui são Plotly ou Bokeh , duas estruturas que suportam JavaScript.
  • Mapeamento . Por exemplo, se um codificador for designado para trabalhar com um banco de dados MongoDB, que armazena dados geográficos e outros no formato JSON, a tarefa provavelmente exigiria o desenho de mapas. Nesse caso, nossa sugestão de estrutura seria o geoplotlib simplesmente porque foi projetada especialmente para esse fim.
  • Estatística aplicada em uma universidade ou ambiente de pesquisa . Os codificadores que fazem pesquisas – que podem incluir ensaios clínicos para empresas farmacêuticas ou que utilizam algoritmos para tornar o processo judicial muito menos tendencioso – provavelmente usarão a linguagem de programação R. No entanto, hoje em dia essa tendência está mudando para o uso do Python simplesmente porque essa linguagem se generalizou em termos de tarefas de aprendizado de máquina. Mas considerando que é mais fácil para os programadores de R usarem algo que eles já sabem, a solução recomendada seria o ggplot, pois pode funcionar como um front-end do Python para a biblioteca de visualização da linguagem R do ggplot.
Obviamente, essa é apenas a ponta do iceberg quando se trata de bibliotecas de visualização de dados – é um campo que está em constante evolução e se tornando mais matizado a cada dia que passa. O fato é que já ultrapassamos o ponto em que a abordagem ‘tamanho único’ pode ser aplicada a todos os projetos. Hoje em dia, se os codificadores não estiverem dispostos a ir além de uma biblioteca, certamente seria uma supervisão debilitante.

Matplotlib

Dizer que o matplotlib é a biblioteca de visualização de dados OG do Python não seria um exagero. Apesar de ter mais de uma década (a primeira versão foi desenvolvida na década de 1980), essa linguagem de programação proprietária é considerada uma das bibliotecas mais procuradas para plotagem na comunidade de codificadores. Ele foi projetado para se parecer com o MATLAB , permitindo que os programadores empilhem gráficos colocando várias métricas em um único gráfico ou vários gráficos em uma única página.
Como o matplotlib foi a biblioteca inicial de visualização de dados Python, muitas outras bibliotecas foram criadas sobre ela ou foram projetadas para trabalhar em conjunto com outras bibliotecas. Isso significa que você pode transmitir qualquer tipo de dados do tipo array em Python – como pandas DataFrames ou matrizes Numpy – sem precisar convertê-los para outro formato.
Embora o matplotlib faça um ótimo trabalho quando se trata de obter uma noção dos dados, não é particularmente útil para criar gráficos com qualidade de publicação. Ou, como Chris Moffitt coloca em sua visão geral das ferramentas de visualização do Python , o matplotlib “é extremamente poderoso, mas com esse poder vem a complexidade”.
Aqui estão alguns exemplos de gráficos criados com o matplotlib:
 

Gráfico de linha

Esse código plota uma matriz Numpy de 1 a 5 em incrementos de 0,25.
import matplotlib.pyplot as plt 
import numpy as np 
 y = np.arange(1,5,0.25) 
 plt.plot(y, 'go')   
Fonte gráfica que criei a partir de Matplotlib
Aqui estão mais alguns exemplos extraídos da documentação do matplotlib:
 

Gráfico de barras empilhadas

Empilhar uma métrica sobre a outra permite que um único gráfico mostre mais dados. Por exemplo, aqui vemos pontuações divididas por grupo e sexo.

Gráfico de linhas coloridas


Este é um exemplo de dois gráficos colocados em uma única tela. A cor é usada para facilitar a visualização dos pontos de dados que estão em um determinado intervalo.

Seaborn


Ao aproveitar o poder do matplotlib, o Seaborn pode criar gráficos estilizados e vívidos em apenas algumas linhas de código. De fato, uma das vantagens de usar essa biblioteca é a ampla variedade de estilos e paletas de cores padrão, permitindo que os codificadores criem designs de gráficos esteticamente agradáveis ​​e, o mais importante, abrangentes.
Os cientistas de dados costumam usar a Matriz de Correlação da Seaborn como um primeiro passo na inspeção de dados. Mencionamos antes que essa matriz faz um trabalho de bang-up na busca de correlações entre os elementos inspecionados. Se os dados não estiverem correlacionados de forma alguma, o cientista de dados pode facilmente abandonar sua suposição e adotar outra abordagem, economizando drasticamente tempo (e nervos). Lembre-se, porém, que o Seaborn se integra bem aos pandas.
No gráfico abaixo, observe a correlação entre cada par de pontos encontrados nas três variáveis ​​a, bec.
Agora, dê uma olhada no gráfico e na legenda à direita. Podemos ver que os pares no meio são 100% (cor marrom) porque todo valor está perfeitamente correlacionado consigo mesmo. Mas se olharmos para (b, c), podemos ver que a correlação entre bec é de 98%.
Abaixo está o código que usamos para gerar o gráfico. Como você pode ver, o código relacionado a gráficos é curto, ilustrando que o Seaborn realmente faz todo o trabalho complicado.
import numpy as np 
import seaborn as sns 
import matplotlib as plt 
import pandas as pd 
 x = np.arange(10) 
 y = np.arange(10) 
 z= np.multiply(x,y) 
 a=np.array([x,y,z]) 
 b=a.reshape(10,3) 
 data = pd.DataFrame(b, columns=['a', 'b', 'c']) 
 corr = data.corr() 
 sns.heatmap(corr,             
                 xticklabels=corr.columns.values,             
                 yticklabels=corr.columns.values)

Bokeh

O que distingue o Bokeh de todas as outras bibliotecas é que ele permite a visualização dinâmica, suportada por navegadores modernos. Como renderiza gráficos usando JS e HTML, pode ser usado para aplicativos da web com um nível muito alto de interatividade.
O bokeh também está disponível nos idiomas R e Scala; no entanto, seu equivalente em Python é mais comum do que outros. Outra coisa que vale a pena mencionar é que o Bokeh é diferente da maioria das bibliotecas, pois não depende do matplotlib.
O principal conceito dessa biblioteca de visualização de dados é que os gráficos são construídos uma camada por vez. Começamos criando uma figura e, em seguida, adicionamos elementos – também conhecidos como glifos – dependendo do uso desejado: linhas, círculos, barras, arcos, remendos etc. igual ao dos geoms, que também são adicionados ao gráfico, uma camada de cada vez.)
Observe também que o Python não pode fazer nada disso em um navegador. Se você deseja criar gráficos com Python, precisa de um ambiente que possua um intérprete Python e suporte a gráficos (algo com o qual os notebooks Zeppelin ou Jupyter podem ajudar).
Aqui está um exemplo de gráfico de Bokeh: 
uma imagem 3D de um avião retirado de seu site. Se você clicar no link, verá que a imagem está realmente se movendo, cortesia do JavaScript.

Geoplotlib


 
O Geoplotlib é uma caixa de ferramentas Python de código aberto que serve para visualizar dados geográficos. Sua biblioteca suporta o desenvolvimento de visualizações interativas aceleradas por hardware e fornece implementações de mapas de pontos, estimativa de densidade de kernel, gráficos espaciais, mosaico Voronoi, shapefiles e muitas outras visualizações espaciais.
O mapeamento é um campo especializado – que exige que você entenda os conceitos, como casco convexo, triangulação de Delaunay, projeção e GeoJSON.
O formato GeoJSON foi desenvolvido pelo US Geological Survey, que localiza itens com longitude, latitude, polígonos etc.
Aqui estão alguns dados de amostra, do GeoJSON.org.
{   
  "type": "Feature",   
  "geometry": {    
    "type": "Point",     
    "coordinates": [125.6, 10.1]   
   },   
   "properties": {     
     "name": "Dinagat Islands"  
     } 
 }  
Os gráficos de geoplotlib incluem recursos comuns ao trabalho com mapas. Isso inclui combinações de teclado, como panorâmica e adição ou remoção de camadas.
Aqui está um exemplo retirado do repositório de códigos Geoplotlib GitHub.
 
 

Ggplot

Baseado na gramática de gráficos , o ggplot é um sistema para entender gráficos, compostos de várias camadas que, juntas, criam um gráfico completo. Seu poderoso modelo de gráficos simplifica todo o processo de criação de gráficos complexos em várias camadas.
Semelhante ao Seaborn, essa biblioteca também pode ser construída sobre o matplotlib, melhorando o apelo visual das visualizações do matplotlib de maneira simples, porém sofisticada. Ele diverge dos transoceânicos porque é um porto de ggplot2 para R.
Agora, R é a linguagem que a maioria dos cientistas de dados da academia e as pesquisas usavam antes do TensorFlow. Portanto, o ggplot foi projetado para permitir que os programadores de R usem o que querem. Embora parte da API seja não-pitônica, dado o objetivo, ela pode servir como uma biblioteca de visualização de dados muito poderosa.

Plotly

O que torna Plotly único é a capacidade de responder a eventos de mouseover, clique do cursor e atualização de dados. Mas, considerando que o Python não é executado em um navegador, é necessário criar gráficos e Javascript.
Você precisará seguir os documentos para configurar sua chave de API. Depois de fazer isso, tudo parece funcionar perfeitamente. A única ressalva é que tudo o que você está fazendo será publicado na Web, para que você não tenha problemas com essa perspectiva.
Outra coisa que vale a pena mencionar é que Plotly e Bokeh são concorrentes. A principal crítica do Plotly é que você precisa converter dados em dicionários. Isso explica o Express, um front-end da Plotly projetado para facilitar o trabalho com os DataFrames do Panda.

Gráfico de exemplo

 
Aqui está um caso de uso perfeito que mostra por que você precisa de JavaScript. Você encontrará um gráfico financeiro cujos pontos de dados estão muito próximos para mostrar todas as informações relevantes. Portanto, você provavelmente precisará de um pop-up para mostrar mais informações em cada ponto de dados. Quando você move o cursor pelo gráfico, uma caixa de anotação aparece para mostrar esses detalhes interessantes.
Para finalizar …
Para ser sincero, plotar dados e criar visualizações no vasto ecossistema Python é um cenário clássico de boas / más notícias. A boa notícia é: há uma abundância de opções. A má notícia é: há uma abundância de opções.
Tentar descobrir qual biblioteca funcionará melhor depende inteiramente do que você está tentando realizar. Na maioria dos casos, você só precisa alocar algum tempo de teste e verificar se os recursos da ferramenta corresponderão aos requisitos do projeto. Lembre-se de que não há vencedores ou perdedores definidos aqui, apenas várias possibilidades de visualização que podem não se encaixar em alguns casos, mas podem funcionar como mágica em outros.
Aqui estão alguns dos principais tópicos:
  • O Matplotlib é como a mãe de todas as bibliotecas Python. Ele serve como uma excelente base, permitindo que os codificadores “envolvam” outras ferramentas sobre ele.
  • O Seaborn pode ser capaz de suportar algumas abordagens de visualização mais complexas, mas ainda exige conhecimento matplotlib para ajustar as coisas.
  • O Bokeh é uma ferramenta robusta para configurar seu próprio servidor de visualização, mas talvez um pouco exagerado ao criar cenários simples.
  • O Geoplotlib fará o trabalho se você precisar visualizar dados geográficos.
  • O Ggplot mostra muitas promessas, mas ainda tem muito a crescer.
  • Plotly gera os gráficos mais interativos, que podem ser salvos offline para criar visualizações vívidas na Web.
Se perdemos alguma coisa ou se existem outras bibliotecas de visualização de dados por aí que valem uma menção, informe-nos e teremos o prazer de expandir nossa análise com suas sugestões.
Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on skype
Skype
Share on telegram
Telegram
Share on whatsapp
WhatsApp
Share on email
Email

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *