This repository contains toy ImPlot applications that demonstrate some of the library's functionality. The demos here are more sophisticated than those provided in implot_demo.h
, and may rely on third-party libraries that would otherwise clutter ImPlot's main repository. Use these examples as a starting point for your application and to familiarize yourself with ImPlot, but do not assume all code (e.g. signal processing algorithms) to be perfectly correct or optimal.
Note: Compiled and tested with MSVC. Minor changes to CMakeLists.txt
may be required to support other compilers. If you make a fix, please submit a PR.
mkdir root
cd root
git clone https://github.com/epezent/implot_demos
git clone https://github.com/epezent/implot
git clone https://github.com/ocornut/imgui
root/
imgui/
implot/
implot_demos/
cd implot_demos
mkdir build
cd build
cmake ..
cmake --build . --config Release
Demo | Description | Image |
---|---|---|
demo.cpp |
Main demo. Displays the ImPlot (and ImGui) library supplied demo windows. | |
filter.cpp |
Simple filter toy for educational purposes. Displays time domain input/output signals, and the frequency domain transfer function, amplitude spectrum, etc. | |
spectrogram.cpp |
Realtime audio spectrogram and visualizer with device playback. Pass in an audio file at the command line: ./spectrogram.exe ./aphex_twin_formula.wav (see resources/audio folder). Recommend compiling with ImPlot backends branch. |
|
maps.cpp |
OpenStreetMap world map viewer. Downloads and displays zoomable tile maps in a plot. | |
mandel.cpp |
Realtime Mandelbrot viewer using AVX2 and OpenMP acceleration. Recommend compiling with ImPlot backends branch. |
|
perlin.cpp |
Renders perlin noise in a heatmap. | |
graph.cpp |
Simple graphing calculator using exprtk expression evaluator. |
|
stocks.cpp |
Downloads and displays historical stock data from Yahoo Finance. |
Have you created something awesome with ImPlot? If so, please consider submitting a PR with a minimal working example of your application as a demo. Use the following guidelines:
common/App.h
(see any existing demos).demos/
.FetchContent
(preferred), git submodules, or manually to the 3rdparty/
folder (include the license).resources/
folder. Keep it simple!