Repolode
epezent

epezent/implot

Immediate mode, GPU accelerated plotting library for Dear ImGui, for real-time and interactive plots in C++ apps.

Stars
6,270
Forks
699
Open issues
121
Last commit
13 days ago

What is it?

ImPlot is a C++ plotting library built on Dear ImGui that follows the same immediate mode style: you call plotting functions every frame between BeginPlot and EndPlot, with no retained GUI state to manage. It is aimed at visualizing application data in real time and at interactive exploration rather than publication-quality or exported figures.

The library supports line, shaded, scatter, bar, error bar, stem, stair, pie, heatmap, histogram and image plots, and several of these can be mixed on one plot. Axes support linear and log scaling, time-formatted x-axes, multiple x and y axes, subplots, and zooming, panning, box selection and query ranges. Its headers and sources have no dependencies beyond ImGui and avoid STL containers in the public API.

Data can be passed as float, double, or 8 to 64-bit signed and unsigned integers, with striding or getter callbacks for custom structures. Integration means adding the source files to a project and creating an ImPlot context alongside the ImGui context.

Key features

  • 01Immediate mode API that follows the ImGui BeginX/EndX pattern
  • 02GPU accelerated rendering with many plot types, including heatmaps and histograms
  • 03Linear and log axis scaling, time-formatted x-axes, and multiple x/y axes
  • 04Interactive zooming, panning, box selection and persistent query ranges
  • 05Styling that follows the current ImGui theme or can be fully customized

Use cases

  • Visualizing live sensor or telemetry data inside a C++ desktop tool
  • Building interactive debugging or monitoring panels on top of Dear ImGui
  • Exploring signal or time-series data with zoom and range selection

Quick start

  1. 1

    Set up an Dear ImGui environment if you don't already have one

  2. 2

    Add implot.h, implot_internal.h, implot.cpp, implot_items.cpp to your sources (or install via vcpkg)

  3. 3

    Install ImPlot with vcpkg

    ./vcpkg install implot
  4. 4

    Create an ImPlotContext alongside your ImGuiContext

Things to know

  • Not suited for publication-quality plots or exporting plots to image files.
  • Dear ImGui uses 16-bit indices by default, so dense plots like heatmaps need a config change or renderer support.

In collections

Topics

FAQ

What is implot?
Immediate mode, GPU accelerated plotting library for Dear ImGui, for real-time and interactive plots in C++ apps. ImPlot is a C++ plotting library built on Dear ImGui that follows the same immediate mode style: you call plotting functions every frame between BeginPlot and EndPlot, with no retained GUI state to manage. It is aimed at visualizing application data in real time and at interactive exploration rather than publication-quality or exported figures.
Is implot free to use? What license does it have?
implot is open source under the MIT license. Check the license terms before using it in commercial products.
Is implot still maintained?
Actively maintained. The last commit to implot was on Oct 25, 2026.
What can I use implot for?
Visualizing live sensor or telemetry data inside a C++ desktop tool Building interactive debugging or monitoring panels on top of Dear ImGui Exploring signal or time-series data with zoom and range selection
How do I install implot?
Set up an Dear ImGui environment if you don't already have one Add implot.h, implot_internal.h, implot.cpp, implot_items.cpp to your sources (or install via vcpkg) Install ImPlot with vcpkg: ./vcpkg install implot Create an ImPlotContext alongside your ImGuiContext
Where can I get implot?
The source code and installation instructions are on GitHub: https://github.com/epezent/implot

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects