Бесплатная библиотека для интерактивной визуализации данных в .NET-приложениях с GUI, консолью, Blazor и ноутбуками.
epezent/implot
Библиотека для GPU-ускоренной визуализации графиков в immediate mode для Dear ImGui — подходит для интерактивных графиков в реальном времени в приложениях на C++.
- Звёзды
- 6,270
- Форки
- 699
- Открытые issues
- 121
- Последний коммит
- 13 дней назад
Что это?
ImPlot — библиотека для построения графиков на C++, созданная на базе Dear ImGui и использующая тот же стиль immediate mode: функции построения графиков вызываются каждый кадр между BeginPlot и EndPlot, поэтому управлять сохраняемым состоянием GUI не нужно. Библиотека предназначена для визуализации данных приложения в реальном времени и интерактивного анализа, а не для создания или экспорта графиков для публикаций.
Библиотека поддерживает линейные, залитые, точечные графики, столбчатые диаграммы, графики с полосами погрешностей, stem- и ступенчатые графики, круговые диаграммы, heatmap, гистограммы и изображения; некоторые из них можно комбинировать на одном графике. Для осей доступны линейный и логарифмический масштабы, форматирование оси x для отображения времени, несколько осей x и y, подграфики, масштабирование, панорамирование, выделение области и диапазоны запросов. Заголовочные файлы и исходный код не имеют зависимостей, кроме ImGui, а в публичном API не используются контейнеры STL.
Данные можно передавать в формате float, double или знаковых и беззнаковых целых чисел разрядностью от 8 до 64 бит; для пользовательских структур можно задать шаг элементов или callbacks-геттеры. Для интеграции достаточно добавить исходные файлы в проект и создать контекст ImPlot наряду с контекстом ImGui.
Ключевые возможности
- 01API в стиле immediate mode, повторяющий шаблон BeginX/EndX из ImGui
- 02GPU-ускоренная отрисовка множества типов графиков, включая heatmap и гистограммы
- 03Линейный и логарифмический масштабы осей, форматирование оси x для отображения времени, несколько осей x/y
- 04Интерактивное масштабирование, панорамирование, выделение области и сохраняемые диапазоны запросов
- 05Оформление в соответствии с текущей темой ImGui или полная настройка стилей
Сценарии использования
- Визуализация данных с датчиков или телеметрии в реальном времени во встроенном инструменте для C++
- Создание интерактивных панелей отладки или мониторинга на базе Dear ImGui
- Анализ сигналов и временных рядов с масштабированием и выбором диапазонов
Быстрый старт
- 1
Настройте окружение Dear ImGui, если у вас его ещё нет
- 2
Добавьте implot.h, implot_internal.h, implot.cpp и implot_items.cpp в исходные файлы (или установите через vcpkg)
- 3
Установите ImPlot с помощью vcpkg
./vcpkg install implot - 4
Создайте ImPlotContext вместе с ImGuiContext
Что важно знать
- Не подходит для построения графиков, предназначенных для публикации, или экспорта графиков в файлы изображений.
- По умолчанию Dear ImGui использует 16-битные индексы, поэтому для плотных графиков, таких как тепловые карты, потребуется изменить настройки или обеспечить поддержку со стороны рендерера.
В подборках
Темы
Частые вопросы
- Что такое implot?
- Библиотека для GPU-ускоренной визуализации графиков в immediate mode для Dear ImGui — подходит для интерактивных графиков в реальном времени в приложениях на C++. ImPlot — библиотека для построения графиков на C++, созданная на базе Dear ImGui и использующая тот же стиль immediate mode: функции построения графиков вызываются каждый кадр между BeginPlot и EndPlot, поэтому управлять сохраняемым состоянием GUI не нужно. Библиотека предназначена для визуализации данных приложения в реальном времени и интерактивного анализа, а не для создания или экспорта графиков для публикаций.
- implot можно использовать бесплатно? Какая у него лицензия?
- implot распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- implot всё ещё поддерживается?
- Активно поддерживается. Последний коммит в implot — 25 окт. 2026 г..
- Для чего можно использовать implot?
- Визуализация данных с датчиков или телеметрии в реальном времени во встроенном инструменте для C++ Создание интерактивных панелей отладки или мониторинга на базе Dear ImGui Анализ сигналов и временных рядов с масштабированием и выбором диапазонов
- Как установить implot?
- Настройте окружение Dear ImGui, если у вас его ещё нет Добавьте implot.h, implot_internal.h, implot.cpp и implot_items.cpp в исходные файлы (или установите через vcpkg) Установите ImPlot с помощью vcpkg: ./vcpkg install implot Создайте ImPlotContext вместе с ImGuiContext
- Где скачать implot?
- Исходный код и инструкции по установке — на GitHub: https://github.com/epezent/implot
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Грамматика высокого уровня на основе JSON для декларативных интерактивных диаграмм, которая компилируется в полноценные спецификации Vega.
GUI-фреймворк для Python на базе Dear ImGui с рендерингом на GPU, API для графиков, редактора узлов и рисования.
Простая в использовании библиотека immediate mode GUI для Rust, работающая в браузере и нативных приложениях и встраиваемая в игровые движки.
Библиотека Python для создания интерактивных визуализаций данных, графиков и дашбордов, отображаемых в современных веб-браузерах.
Java-библиотека для работы с датафреймами: загрузка, очистка, преобразование и сводный анализ табличных данных, а также построение графиков на базе Plotly.