ImPlot.jl

Plotting extension library for CImGui.jl
Author wsphillips
Popularity
22 Stars
Updated Last
2 Years Ago
Started In
May 2020

ImPlot.jl

Plotting extension library that can be used in conjunction with CImGui.jl to provide enhanced immediate-mode data visualization.

ImPlot.jl provides an interface to cimplot, which is an auto-generated C API to implot, a C++ plotting extension library for imgui.

Installation

Simple installation via the package registry:

]add ImPlot

NOTE: The current stable version of ImPlot on the registry is backed by binaries built from implot v0.4. If you would like to try out some of the newer plot types and features, the development branch is currently running with binaries built from implot v0.8. To use that instead, install via:

]add https://github.com/wsphillips/ImPlot.jl#master

Also note, there are currently no convenience functions for the newer implot features on the development branch. You will have to work with the lower-level function wrappers in the LibCImPlot submodule

Example Usage

Use demo/demo.jl to check if things are working + the demo window that shows off what the API can do.

Plots are delcarative and follow a similar pattern as CImGui.jl:

## within a CImGui.jl render loop
## This assumes you have CImGui.LibCImGui.ImGuiCond_Once in scope
...

if show_window
    @c CImGui.Begin("Plot Window", &show_window)
    y = rand(1000)
    ImPlot.SetNextPlotLimits(0.0,1000,0.0,1.0, ImGuiCond_Once)
    if (ImPlot.BeginPlot("Foo", "x1", "y1", CImGui.ImVec2(-1,300)))
        ImPlot.PlotLine(y)
        ImPlot.EndPlot()
    end
    CImGui.End()
end

For some basic Julia imlementation examples, see also demo/example_plots.jl Another good place to look is the C++ demo sources

Used By Packages

No packages found.