Foto por oxana v em Unsplash

Este guia foi atualizado com alguns exemplos mais aprofundados. Você pode encontrar a última versão do blog aqui.

Se você está começando com a visualização Python, você pode ficar sobrecarregado com o número de bibliotecas e exemplos:

  • Matplotlib
  • Seaborn
  • Plotly
  • Bokeh
  • Altair
  • Folium

Se você tem um DataFrame esperando para ser visualizado, qual você deve escolher? Algumas bibliotecas podem ser melhores em casos específicos do que as outras. Este artigo irá mostrar os prós e os contras de cada uma. Ao final deste artigo, você deverá ser capaz de distinguir as diferentes características de cada biblioteca e ter mais facilidade para escolher a melhor.

Faremos isso usando um conjunto de dados de amostra e explorando-o usando cada biblioteca, focando em alguns atributos específicos:

Interactividade

Quer que a sua visualização seja interactiva?

algumas bibliotecas, como a Matplotlib, renderizam visualizações como imagens; assim, são boas para explicar conceitos (em papel, slide deck ou apresentação).

Por outro lado, bibliotecas como Altair, Bokeh e Plotly permitem-lhe criar gráficos interactivos nos quais os seus utilizadores podem mergulhar e explorar a si próprios

Sintaxe e Flexibilidade

Como é que a sintaxe de cada biblioteca difere? Bibliotecas de nível inferior como a Matplotlib permitem que você faça qualquer coisa que você possa desejar – mas ao custo de uma API mais complexa. Algumas bibliotecas como Altair são muito declarativas, o que facilita o mapeamento para seus dados.

Tipo de dados e visualização

Você está trabalhando com um caso de uso especializado, como um gráfico geográfico, com dados grandes, ou usando um tipo de gráfico que só é suportado por uma certa biblioteca?

Data

Para facilitar a comparação, vou usar os dados reais que eu raspei do Github neste artigo:

Vou incorporar as visualizações de cada biblioteca usando o Datapane, que é um framework Python e API para publicar e compartilhar relatórios Python. Se você quiser ver mais exemplos do mundo real, confira os relatórios com contribuições de usuários na galeria Datapane.

Para seguir o artigo, você pode baixar o arquivo csv daqui ou obter os dados diretos do Datapane Blob.

import datapane as dpdp.Blob.get(name='github_data', owner='khuyentran1401').download_df()

Remember para entrar no Datapane com seu token de antemão se você quiser usar o Blob. Isto deve levar menos de 1 minuto

Matplotlib

Matplotlib é provavelmente a biblioteca Python mais comum para visualização de dados. Todos que estão interessados na ciência dos dados provavelmente usaram Matplotlib pelo menos uma vez.

Pros

  1. Fácil ver a propriedade dos dados

Ao analisar os dados, dar uma olhada rápida na distribuição pode ser o ideal.

Por exemplo, se eu quiser dar uma olhada rápida na distribuição dos 100 maiores usuários com mais seguidores, usar Matplotlib normalmente é suficiente.

Even embora o eixo x do Matplotlib não pareça bom, temos uma melhor compreensão da distribuição dos dados olhando para o gráfico.

2. Pode traçar qualquer coisa

Matplotlib é muito versátil, o que significa que pode traçar qualquer tipo de gráfico que você possa imaginar. O site da Matplotlib contém documentação muito abrangente e vários gráficos na galeria, o que torna fácil encontrar tutoriais para qualquer tipo de gráfico maluco que você possa imaginar.

>

Like algum texto como este:

Cons

Matplotlib pode plotar qualquer coisa, mas pode ser complexo plotar gráficos não-básicos ou ajustar os gráficos para ficar bonito.

Even embora o gráfico seja suficientemente bom para visualizar a distribuição, se você quiser representar seus dados para outros, você precisará consertar o eixo x, eixo y, o que exige muito esforço. Isto porque Matplotlib tem uma interface de nível extremamente baixo.

Takeaway: Matplotlib pode plotar qualquer coisa menos gráficos complexos podem levar muito mais códigos do que outras bibliotecas

Seaborn é uma biblioteca de visualização de dados Python baseada em Matplotlib. Ela fornece um wrapper de nível superior na biblioteca o que facilita o uso.

Pros

  1. Less code

Provê uma interface de nível superior para gráficos similares. Em outra palavra, seaborn geralmente fornece gráficos semelhantes ao matplotlib, mas com menos código e um design melhor.

Usamos os mesmos dados de antes para desenhar um mapa de calor semelhante do gráfico.

>

Obtém-se um mapa de calor melhor sem definir o rótulo x e y!

Faça os enredos de uso comum mais bonitos

Muitas pessoas optam por enredos populares, tais como enredos de barra, enredos de caixa, enredos de contagem, histogramas, etc não só porque poderiam ser criados com menos código, mas também porque parecem muito mais bonitos. Como podemos ver no nosso exemplo acima, as cores também parecem melhores do que as padrão um do Matplotlib.

Cons

Seaborn é mais restrito e não tem uma coleção tão ampla quanto o Matplotlib

Takeaway: Seaborn é uma versão de nível superior da Matplotlib. Mesmo não tendo uma coleção tão ampla como Matplotlib, Seaborn faz com que gráficos populares como o gráfico de barras, box plot, heatmap, etc pareçam bonitos em menos código.

Plotly

A biblioteca gráfica Python do Plotly facilita a criação de gráficos interativos, com qualidade de publicação. Ela também pode criar gráficos similares ao Matplotlib e seaborn como gráficos de linhas, gráficos de dispersão, gráficos de área, gráficos de barras, etc.

Pros

  1. Like R

Se você é um fã de gráficos em R e perde suas características ao mudar para Python, Plotly lhe dá a mesma qualidade de gráficos usando Python!

O meu favorito é o Plotly Express porque ele torna realmente fácil e ainda mais rápido criar grandes parcelas a partir de uma única linha de Python.

Fácil criar parcelas interativas

Plotly também facilita a criação de parcelas interativas. Os gráficos interativos não são apenas bonitos, mas também facilitam a visualização de cada ponto de dados.

Lembrar o gráfico de barras que temos anteriormente com matplotlib? Vejamos como fica com Plotly

Com aproximadamente as mesmas linhas de código, produzimos um gráfico interativo que podemos passar o mouse sobre cada barra para ver qual usuário e o número de seguidores que a barra representa. Isto significa que o consumidor da sua visualização pode explorá-la ele mesmo.

3. Lotes complexos tornados fáceis

Com Plotly, alguns lotes que são normalmente desafiadores de criar podem ser criados facilmente.

Por exemplo, se quisermos criar um mapa para visualizar a localização dos usuários do Github, podemos encontrar suas latitudes e longitudes como mostrado aqui, e depois use esses dados para localizar os locais dos usuários no mapa assim

Com algumas linhas de códigos, os locais de todos os usuários são lindamente representados em um mapa. A cor das bolhas representa o número de garfos e o tamanho representa o número total de estrelas

Takeaway: Plotly é ótimo para criar gráficos interativos e de qualidade de publicação com poucas linhas de código.

Altair

Altair é uma biblioteca de visualização estatística declarativa para Python baseada em vega-lite, o que a torna ideal para gráficos que requerem muita transformação estatística.

Pros

1. Gramática de visualização simples

A gramática usada para criar a visualização é fácil de entender. É necessário apenas mencionar os links entre as colunas de dados para os canais de codificação e a plotagem do resto é tratada automaticamente. Isto soa abstrato, mas é uma grande coisa quando você está trabalhando com dados, e torna a visualização da informação muito rápida e intuitiva.

Por exemplo, com os dados titânicos acima, gostaríamos de contar o número de pessoas em cada classe, tudo o que precisamos é usar count() no eixo y

2. Easy to Transform Data

Altair também torna realmente fácil transformar os dados ao criar o gráfico

Por exemplo, se quiséssemos encontrar a idade média de cada sexo no titânico, em vez de fazer a transformação antecipadamente como Plotly, poderíamos realizar a transformação dentro do código para criar o gráfico.

Podíamos também certificar-nos de que a classe é um dado nominal (dados categóricos sem qualquer ordem) usando :N ou certifique-se que a idade_média é um dado quantitativo (medidas de valores como números) usando :Q

Veja uma lista completa de transformações de dados aqui

3. Easy to Link Plots

Altair também permite que você faça algumas ligações impressionantes entre os gráficos, como usando uma seleção de intervalo para filtrar o conteúdo de um histograma anexado.

Por exemplo, se quisermos visualizar o número de pessoas em cada classe dentro do intervalo selecionamos um gráfico de pontos entre idade e tarifa, poderíamos fazer algo assim.

>

Enquanto arrastamos o mouse para selecionar o intervalo dentro do gráfico de dispersão, poderíamos ver a mudança no gráfico de barras abaixo. Quando combinado com as transformações e cálculos anteriores, isto significa que você pode criar alguns gráficos extremamente interativos que fazem cálculos em tempo real – sem mesmo requerer um servidor Python em execução!

Cons

Sem especificação de estilo personalizado, os gráficos simples como o gráfico de barras não têm o mesmo estilo que o do Seaborn ou Plotly. Altair também não recomenda conjuntos de dados com mais de 5000 amostras e recomenda que você agregue seus dados antes da visualização.

Takeaway: Altair é ideal para gráficos sofisticados para mostrar estatísticas. Altair não pode lidar com dados acima de 5000 amostras e alguns gráficos simples não têm o mesmo estilo que Plotly ou Seaborn.

Bokeh

Bokeh é uma biblioteca de visualização interactiva flexível que tem como alvo os navegadores web para representação.

Pros

  1. Versão interativa da Matplotlib

Se nos colocarmos entre as bibliotecas de visualização interativa acima, Bokeh provavelmente ficará em primeiro lugar em relação à similaridade com Matplotlib.

Matplotlib pode criar qualquer gráfico porque é uma biblioteca de visualização de baixo nível. Bokeh pode ser usado como uma interface de alto ou baixo nível; assim, ele pode criar muitos gráficos sofisticados que Matplotlib cria, mas com menos linhas de código e maior resolução.

Por exemplo, a trama circular de Matplotlib

Pode também ser criado com melhor resolução e mais utilidade usando Bokeh

2. Ligação entre parcelas

>

Bokeh também torna realmente fácil a ligação entre parcelas. A mudança aplicada em uma parcela será aplicada a outra parcela com uma variável similar.

Por exemplo, se nós criarmos 3 gráficos lado a lado e quisermos observar o seu relacionamento, poderíamos usar escovagem ligada

ColumnDataSource permite que os dados sejam partilhados entre parcelas. Assim, quando aplicamos a alteração a um gráfico, os outros gráficos também são alterados de acordo.

Cons

Porque Bokeh é uma biblioteca que de certa forma tem uma interface de nível médio, muitas vezes leva menos código que Matplotlib mas leva mais código para produzir o mesmo gráfico que Seaborn, Altair, ou Plotly.

Por exemplo, para criar o mesmo gráfico de contagem usando dados titânicos, além da necessidade de transformar os dados com antecedência, também precisamos definir a largura da barra e cor se quisermos que o gráfico fique bonito

Se não adicionássemos largura para o gráfico de barras, o gráfico ficaria assim

Assim, precisamos ajustar manualmente as dimensões para tornar o gráfico mais agradável

Se você quiser criar um belo gráfico de barras em menos código, esta pode ser a desvantagem de Bokeh em comparação com outras bibliotecas

Takeaway: Bokeh é a única biblioteca cuja interface varia de baixa a alta, o que facilita a produção de gráficos versáteis e elegantes. Isto, porém, vem com o custo de que geralmente é necessário mais código para Bokeh criar os gráficos com qualidade similar a outras bibliotecas.

Folium

Folium facilita a visualização de dados em um mapa de folhetos interativos. A biblioteca tem um número de tilesets embutidos do OpenStreetMap, Mapbox e Stamen

Pros

  1. Fácil criar um mapa com marcadores

Even though Plotly, Altair, e Bokeh também nos permite criar mapas, a Folium usa um mapa de rua aberto para lhe dar uma sensação mais próxima de um mapa do Google com código mínimo

Lembrar como criamos o mapa para visualizar as localizações dos usuários do Github usando Plotly? Poderíamos tornar o mapa ainda mais bonito com Folium

A localização inicial em Brooklyn, NY. Ampliar para ver outros locais no mapa. Com algumas linhas de códigos, criamos um mapa real mostrando as localizações dos usuários.

2. Adicionar localização potencial

Se quisermos adicionar localizações potenciais de outros usuários, a Folium facilita a tarefa permitindo que os usuários adicionem marcadores

Clique no mapa para ver uma nova localização gerada exatamente onde você clicar.

3. Plugins

Folium tem um número de plugins que pode utilizar com o seu mapa – incluindo um plugin para Altair. E se quisermos ver o mapa de calor do total de estrelas dos utilizadores de Github no mundo para identificar onde existe um elevado número de utilizadores de topo de Github com um elevado número do total de estrelas? O mapa de calor nos plugins Folium permite-lhe fazer exactamente isso.

Zoom para ver a imagem completa do mapa de calor.

>

Takeaway: Folium permite criar um mapa interactivo com poucas linhas de códigos. Ele lhe dá a experiência de um Mapa Google.

Conclusão

Congratulação! Você acabou de aprender sobre seis diferentes ferramentas de visualização para sua visualização. Espero que este artigo lhe dê uma noção do que cada biblioteca faz e quando usar o quê. Agarrando as principais características de cada biblioteca, será mais rápido para você puxar a biblioteca certa como você precisa.

Se você ainda estiver confuso sobre qual biblioteca usar para seus dados, basta escolher uma que você ache boa o suficiente. Então se o código for muito longo ou o gráfico não for tão bom quanto você imagina, apenas tente com outra biblioteca!

Feel free to fork and play with the code for this article in this Github repo.

I like to write about basic data science concepts and play with different algorithms and data science tools. Você poderia se conectar comigo no LinkedIn e Twitter.

Star este repo se você quiser conferir os códigos de todos os artigos que escrevi. Siga-me em Médio para se manter informado com meus últimos artigos de ciência de dados como estes:

admin

Deixe uma resposta

O seu endereço de email não será publicado.

lg