Игорь Градов
Игорь Градов
5 мин
ai

Построить график по коду Python онлайн: библиотека XY рисует 100 млн точек за 0,08 с

Компания Reflex AI выпустила XY, открытую библиотеку для построения интерактивных графиков на Python, которая отрисовывает 100 миллионов точек за 0,08 секунды и упаковывает результат в файл размером 258 КБ вместо сотен мегабайт.

Построить график по коду Python онлайн: библиотека XY рисует 100 млн точек за 0,08 с
Почему это важно

Стандартные инструменты визуализации на Python создают отдельный объект для каждой строки данных, поэтому выше нескольких сотен тысяч точек графики начинают тормозить, а экспорт раздувается до сотен мегабайт. XY снимает это ограничение и позволяет построить график по коду Python онлайн без потери интерактивности даже на массивах в десятки миллионов строк.

Библиотека вышла в статусе ранней альфы (версия 0.0.1) под лицензией Apache 2.0. Reflex AI позиционирует XY для команд, работающих с большими объёмами данных: финтех, геномика, телеметрия, астрономия и геоаналитика. Результаты бенчмарков опубликованы на GitHub проекта и в техническом блоге Reflex AI.

Показатель Значение Источник
Время отрисовки 10 000 точек 0,071 с бенчмарк Reflex AI
Время отрисовки 100 млн точек 0,081 с бенчмарк Reflex AI
Ускорение на 10 млн точек (к Plotly) 34 раза бенчмарк Reflex AI
Ускорение на 50 млн точек (к Plotly) 177 раз бенчмарк Reflex AI
Размер HTML-экспорта (10 млн точек) 258 КБ (у Plotly 259 МБ) бенчмарк Reflex AI
Потребление RAM на 10 млн точек 0,32 ГБ (Matplotlib 0,84 ГБ, Plotly 1,86 ГБ) бенчмарк Reflex AI
Максимальный тестируемый объём 10 млрд точек (датасет OpenStreetMap) Reflex AI
Версия 0.0.1 (альфа) Reflex AI
Лицензия Apache 2.0 Reflex AI
Требования Python 3.11 и выше Reflex AI

Как XY добивается такой скорости?

Обычные Python-библиотеки для графиков (Matplotlib, Plotly) создают один рисуемый объект на каждую строку данных. Когда строк становится сто тысяч и больше, браузер захлёбывается: отрисовка, масштабирование и всплывающие подсказки тормозят или ломаются.

XY работает иначе. Ядро написано на Rust, данные передаются в браузер в виде бинарных буферов (не текстового JSON), а рисует всё WebGL2 (технология аппаратного ускорения графики в браузере).

Библиотека хранит точные числовые столбцы (f64) на стороне Python, а для отображения выбирает подходящее «облегчённое» представление. Например, для длинных упорядоченных линий с более чем 10 000 строк включается алгоритм прореживания M4, а для облаков точек свыше 200 000 строк используется автоматическая плотностная карта с сеткой 512 на 384 ячейки.

При этом, когда пользователь наводит курсор или выделяет область, система возвращает данные из исходных, а не прореженных, строк. Увеличение (zoom) подгружает точные точки для видимого окна и кеширует их для плавной прокрутки.

Что показал бенчмарк?

Reflex AI провела тесты на Apple M5 Pro, прогоняя каждую библиотеку через реальный браузер и останавливая секундомер только после того, как картинка стабилизировалась (10 идентичных кадров подряд).

  • Скорость. Время отрисовки XY остаётся почти постоянным: 0,071 с на 10 тысячах точек и 0,081 с на 100 миллионах. Plotly на 10 миллионах точек медленнее в 34 раза, на 50 миллионах в 177 раз.
  • Память. На 10 миллионах точек XY занимает 0,32 ГБ оперативной памяти. Matplotlib берёт 0,84 ГБ, Plotly забирает 1,86 ГБ.
  • Размер экспорта. Интерактивный scatter-график на 10 миллионов точек экспортируется в HTML-файл размером 258 КБ. Аналогичный файл Plotly весит 259 МБ, то есть в тысячу раз больше. Размер файла XY почти не растёт от 1 до 100 миллионов строк.
  • Режим без прореживания. С отключённой плотностной картой (density=False) XY рисует 100 миллионов маркеров за 1,343 с, потребляя 5,26 ГБ памяти.
  • Масштабный тест. Reflex AI сообщает, что отрисовала полный датасет OpenStreetMap, это 10 миллиардов точек.

Замечу: тестирование проведено на одной машине и в одном прогоне на каждую ячейку, поэтому воспроизвести результаты на другом железе стоит самостоятельно.

Что внутри библиотеки?

XY поставляется через pip install xy и содержит 14 семейств графиков:

  • scatter (облако точек)
  • line (линия)
  • area (область)
  • histogram (гистограмма)
  • box (ящик с усами)
  • violin (скрипка)
  • ECDF (эмпирическая функция распределения)
  • heatmap (тепловая карта)
  • hexbin (гексагональное разбиение)
  • contour (контурный график)

Стилизация принимает CSS и классы Tailwind через стабильные DOM-слоты. Для тех, кто привык к Matplotlib, есть совместимый режим import xy.pyplot as plt, хотя документация честно отмечает, что поддерживается не всё. Отдельный адаптер reflex-xy превращает любой график в компонент фреймворка Reflex без JavaScript и iframe.

Как это читать

Библиотека находится в статусе 0.0.1 альфа. Бенчмарк проведён разработчиками XY, а не независимой лабораторией, на одной машине Apple M5 Pro, по одному прогону на каждую ячейку. Пороги прореживания (10 000 строк для M4, 200 000 для плотностной карты) заявлены как временные, не гарантия API. Для критически важных продуктов в проде Reflex AI сама рекомендует пилотный режим, а не боевое развёртывание.

Что делать с этим прямо сейчас?

Датасайентисту и аналитику. Если вы работаете в Jupyter-ноутбуке с массивами от сотен тысяч строк (тиковые данные, логи, геоданные), попробуйте pip install xy и сравните с вашим текущим стеком. Ситуация, когда можно построить график по коду Python онлайн на 10 миллионах точек и получить интерактивный HTML в 258 КБ, которым можно поделиться по почте, это практический сдвиг.

Финтех-команде в РФ. Для визуализации тиковых данных Мосбиржи, исторических котировок и потоковой телеметрии XY закрывает реальную боль: не нужно предварительно сэмплировать данные перед построением графика. Пока библиотека в альфе, подходит для внутренних дашбордов и аналитических артефактов, не для клиентских интерфейсов.

Автору Дзена и маркетологу. Если вы делаете контент с визуализацией данных и хотите встроить интерактивный график в HTML-публикацию, файл в 258 КБ загружается мгновенно. Для сравнения: экспорт из Plotly на том же объёме данных весит как небольшое приложение.

Мнение редакции dzen.guru

Мы в dzen.guru смотрим на XY с осторожным интересом. Бенчмарк впечатляет, но он проведён самими разработчиками и на одной машине, так что ждём независимых замеров. Версия 0.0.1 означает, что API может измениться радикально. Тем не менее сам подход (Rust-ядро, бинарная передача, рисование на GPU вместо создания миллионов DOM-элементов) выглядит правильным направлением. В российском контексте ближайшие аналоги для тяжёлой визуализации это Plotly и Matplotlib, и оба проигрывают на больших данных. Если XY дойдёт до стабильной версии, это может стать стандартным инструментом для команд, которые сейчас вынуждены сэмплировать данные перед каждым графиком.

Для тех, кто работает с Python 3.11 и выше, порог входа минимален: одна строка pip install xy, одна строка импорта, и можно проверить на своих данных, подтверждаются ли заявленные цифры на вашем железе.

По данным Marktechpost

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

NVIDIA открыла SkillSpector: безопасность нейросетей проверяется до деплоя
ai

NVIDIA открыла SkillSpector: безопасность нейросетей проверяется до деплоя

Безопасность нейросетей на практике: как проверить ИИ-навыки на скрытые угрозы до того, как они попадут в продакшн, с помощью NVIDIA SkillSpector. Почему это…

6 мин
AWS встроит low-code платформу Superblocks в частные облака: данные клиентов останутся внутри периметра
ai

AWS встроит low-code платформу Superblocks в частные облака: данные клиентов останутся внутри периметра

Компания Superblocks, разработчик low-code платформы для создания приложений голосовыми и текстовыми командами, объявила о многолетнем маркетинговом соглашении…

5 мин
Искусственный интеллект в дронах мультироторного типа обходит GPS: 50 000 аппаратов наводятся по камере
ai

Искусственный интеллект в дронах мультироторного типа обходит GPS: 50 000 аппаратов наводятся по камере

Украинские операторы дронов уже уничтожили множество единиц российской бронетехники и даже военные вертолёты в воздухе с помощью дронов Shrike стоимостью 400…

4 мин