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.
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.
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.
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.

