Об этом проекте

uPlot — это легковесная библиотека графиков под лицензией MIT, построенная на Canvas 2D и ориентированная на временные ряды, линии, области, OHLC и столбчатые диаграммы. Она спроектирована для скорости и эффективности использования памяти: проект сообщает о создании интерактивного графика со 166 650 точками данных за 25 мс с холодного старта и последующем масштабировании примерно на 100 000 точек в миллисекунду. Библиотека занимает около 50 КБ в минифицированном виде и поддерживает потоковую передачу данных в реальном времени, часто на 60 fps, с относительно низким использованием CPU и RAM по сравнению с другими библиотеками графиков на Canvas. Ключевые возможности включают несколько серий с возможностью переключения, несколько осей Y и шкал, временные или числовые оси X, линейные, равномерные или логарифмические шкалы, стилизацию линий и областей, подключаемые отрисовщики путей, такие как линейные, сплайновые, ступенчатые и столбчатые, масштабирование с автоматическим пересчётом, легенды с живыми значениями, поддержку часовых поясов IANA и перехода на летнее время, обработку отсутствующих данных, синхронизацию курсора между графиками, поведение фокуса на ближайшей серии, полосы high/low и группы положительного/отрицательного стекирования. API намеренно минималистичен и расширяется через хуки и плагины. Проект сознательно избегает универсального парсинга данных, агрегации или статистической обработки, переходов и анимаций, автоматического предотвращения пересечения подписей осей, а также встроенной прокрутки перетаскиванием или панорамирования. Плавная сплайновая интерполяция доступна, но не рекомендуется. Существуют сторонние интеграции для React, Vue.js, Svelte и Python. Документация представлена в виде концептуального обзора, определений TypeScript и набора запускаемых демонстраций.