A biblioteca de gráficos por trás dos dashboards de uma empresa é uma decisão de longo prazo. Ela define com que rapidez novos produtos de decisão podem ser construídos, quão bem eles aparecem em um celular durante uma reunião do conselho e quanto custa mantê-los. Para comparar as opções em condições iguais, construímos o mesmo gráfico com três das melhores bibliotecas de código aberto disponíveis em Python.

O gráfico de teste é típico de um dashboard executivo: um gráfico de áreas empilhadas ao longo do tempo, com um seletor de período, totais que se atualizam com a seleção e uma legenda interativa.

Plotly: rápido para começar, mais difícil de terminar

Plotly é uma das bibliotecas mais populares para gráficos interativos em Python, bem integrada ao Pandas e aos notebooks. O Plotly Express produziu o gráfico base em poucas linhas, mas chegar ao padrão executivo exigiu soluções alternativas:

  • O eixo vertical não se reajusta quando o período muda, o que esconde padrões em períodos mais curtos.
  • Não existe uma forma nativa de mostrar totais que reajam à legenda; nós os adicionamos com JavaScript.
  • Interagir com a legenda remove a cor de preenchimento das áreas, um bug conhecido.
O gráfico final do Plotly: útil e interativo, com soluções alternativas.

Altair: uma gramática elegante, mais código

O Vega-Altair descreve os gráficos de forma declarativa, sobre a gramática do Vega, e é excelente para gráficos estatísticos. A interação exigiu mais código do que o design, e algumas limitações permaneceram:

  • Com vários itens da legenda selecionados, clicar no gráfico ou no seletor apaga a última seleção; compilar o gráfico para Vega resolveu.
  • O seletor de datas não funciona bem em dispositivos móveis, e as dicas podem ficar presas na tela.
  • Gráficos com facetas não conseguem ajustar o tamanho ao contêiner.
O gráfico final do Altair: útil e interativo, menos adequado para celulares.

ECharts: o resultado mais completo

O ECharts é uma biblioteca JavaScript de código aberto criada para desempenho e flexibilidade, com uma variedade muito ampla de tipos de gráficos. O PyEcharts dá acesso a ela a partir do Python. Ele exigiu menos código do que as outras duas, funcionou em celulares sem mudanças, e sua única lacuna, os totais que acompanham a legenda, foi resolvida com poucas linhas de JavaScript.

O gráfico final do ECharts: completo, interativo e pronto para celulares.

Nossa recomendação

  • Plotly é uma boa escolha para análise em notebooks e protótipos rápidos; dashboards em produção vão precisar de soluções alternativas.
  • Altair é ideal para exploração estatística feita por analistas, menos para uso executivo em celulares.
  • ECharts é a nossa escolha para produtos de decisão: completo desde o início, rápido, pronto para celulares e fácil de estender.
BS

Bartor S.

Fundador

Todos os insights