Reflex lança XY: biblioteca Python de gráficos com núcleo em Rust que mantém 100 milhões de pontos interativos
A Reflex AI liberou como código aberto a XY, uma biblioteca Python de visualização 2D com licença Apache 2.0 que resolve um dos gargalos mais persistentes da análise de dados em Python: renderizar gráficos interativos com milhões de pontos sem travar o navegador.
O segredo está na arquitetura. Enquanto bibliotecas como Matplotlib e Plotly criam um objeto gráfico por linha de dados — o que funciona bem até algumas centenas de milhares de pontos, mas degrada rapidamente além disso —, a XY move o processamento pesado para um núcleo nativo em Rust. Os dados são enviados ao navegador como buffers binários tipados em vez de JSON, e a renderização usa WebGL2.
Números que impressionam
| Pontos | XY | Matplotlib (WebAgg) | Plotly (scattergl) |
|---|---|---|---|
| 1 milhão | 0,084 s | 0,357 s | 0,614 s |
| 10 milhões | 0,083 s | 2,804 s | 3,367 s |
| 50 milhões | 0,076 s | 13,385 s | ✕ |
| 100 milhões | 0,081 s | ✕ | ✕ |
Na prática, a XY é 34× mais rápida que a Matplotlib com 10 milhões de pontos e 177× mais rápida com 50 milhões. O consumo de memória também é dramaticamente menor: 0,32 GiB contra 0,84 GiB da Matplotlib e 1,86 GiB da Plotly com 10 milhões de pontos.
Como funciona
A XY mantém os dados originais em colunas f64 no Python e escolhe dinamicamente uma representação visual adequada ao viewport. Para até 10.000 pontos, cada marcador é desenhado individualmente. Acima disso, aplica decimação M4 para linhas ordenadas. A partir de 200.000 pontos em scatter plots, alterna automaticamente para uma grade de densidade de 512×384 células.
O resultado prático: hover, seleção e zoom ainda recuperam os valores exatos das linhas originais, porque os dados canônicos nunca saem do Python. A Reflex também relata ter renderizado o dataset completo do OpenStreetMap — 10 bilhões de pontos.
Instalação e compatibilidade
Basta um comando: pip install xy (requer Python 3.11+). A biblioteca oferece 14 famílias de gráficos (scatter, linha, área, histograma, box, violino, ECDF, heatmap, hexbin, contorno e mais) e aceita estilização com CSS e classes Tailwind. Para migração, o módulo import xy.pyplot as plt executa código comum da Matplotlib.
⚠️ A XY está em alpha inicial (versão 0.0.1). Startups e equipes de dados podem adotá-la para analytics interno, notebooks e artefatos compartilháveis. Empresas reguladas devem pilotar antes de colocar em produção.
Para quais cenários serve
A biblioteca brilha onde o volume de dados é o gargalo real: finanças quantitativas (dados de tick), genômica e bioinformática (gráficos Manhattan, varreduras de frequência alélica), observabilidade e telemetria, astronomia e análise geoespacial. Um scatter interativo de 10 milhões de pontos exporta para apenas 258 KiB de HTML, contra 259 MiB do equivalente em Plotly.
Descubra mais sobre noticiAI
Assine para receber nossas notícias mais recentes por e-mail.



