Reflex disponibiliza XY como código aberto: uma biblioteca de gráficos em Python com suporte a Rust que mantém gráficos de 100 milhões de pontos interativos
A Reflex AI lançou o XY, uma biblioteca de gráficos em Python sob licença Apache-2.0 para visualização 2D interativa. Ela usa um núcleo nativo em Rust e WebGL2 para manter os gráficos responsivos mesmo com 100 milhões de pontos, alcançando tempos de renderização em torno de 0,08 segundos. A biblioteca está disponível via pip install xy e requer Python 3.11 ou superior.
A Reflex AI disponibilizou como código aberto o XY, uma biblioteca Python de criação de gráficos para visualização 2D interativa, licenciada sob Apache-2.0. A biblioteca aborda a degradação de desempenho das stacks tradicionais de criação de gráficos em Python, que criam um objeto desenhável por linha e ficam lentas a partir de algumas centenas de milhares de pontos. O XY move o trabalho de renderização para um núcleo nativo em Rust, envia buffers binários tipados para o navegador em vez de JSON, e desenha via WebGL2. Os resultados de benchmark mostram que o XY mantém um tempo de renderização de 0,071 segundos com 10.000 pontos e 0,081 segundos com 100 milhões de pontos. A biblioteca está em alpha inicial (versão 0.0.1) e é instalada com pip install xy, exigindo Python 3.11 ou superior. Ela oferece composição declarativa de marcas, eixos, legendas, tooltips e anotações, e vem com 14 famílias de gráficos incluindo dispersão, linha, área, histograma, box, violino, ECDF (função de distribuição cumulativa empírica), mapa de calor, hexbin e contorno. A biblioteca mantém colunas f64 exatas em um ColumnStore Python, garantindo que o hover, a seleção e o drilldown de zoom ainda retornem as linhas originais. O XY exporta um gráfico de dispersão interativo de 10 milhões de pontos para 258 KiB de HTML, em comparação com 259 MiB para o Plotly. Um benchmark em um Apple M5 Pro mostra o XY a 0,084 s para 1M de pontos, 0,083 s para 10M, 0,076 s para 50M e 0,081 s para 100M, enquanto Matplotlib e Plotly falham ou ficam significativamente lentos em contagens mais altas. A Reflex também relata a renderização do conjunto de dados completo do OpenStreetMap, com 10 bilhões de pontos. A biblioteca inclui um caminho de migração: import xy.pyplot as plt executa código comum do Matplotlib pyplot, e um adaptador reflex-xy converte gráficos em componentes Reflex sem JavaScript ou iframes.
Fonte: MarkTechPost —
original
