The plotting module provides a bunch of plotting widgets to imgui. We use the implot library to handle this functionality.
To enable the plotting module, you can either hard-code the USE_PLOTTING_MODULE
option in your CMakeLists.txt
file by finding the following line:
option(USE_PLOTTING_MODULE "Use the plotting module" OFF)
and modifying the line to look like this:
option(USE_PLOTTING_MODULE "Use the plotting module" ON)
Alternatively, you can also generate your project files using CMake options by running the following CMake command:
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DUSE_PLOTTING_MODULE=ON
Finally, update your uvproj.yaml
so that the plotting
key under enabled-modules
is set to true like this:
name: "MyProject"
version: "1.0.0.0"
engine-version: "1.0.0.0"
enabled-modules:
plotting: true
Next, in your source file, include the Modules.hpp
header in your components like this:
#include <Modules/Modules.hpp>
The entire module is flagged as event safe at All ready
In one of your widgets, add the following code to your tick function
ImGui::SetNextItemWidth(250);
if (ImPlot::BeginPlot("##Pie1", ImVec2(350, 350), ImPlotFlags_Equal | ImPlotFlags_NoMouseText))
{
static const char* labels[] = { "Data 1", "Data 2" };
double dt[] = { 10.0f, 12.0f };
ImPlot::SetupAxis(ImAxis_X1, nullptr, ImPlotAxisFlags_NoDecorations);
ImPlot::SetupAxis(ImAxis_Y1, nullptr, ImPlotAxisFlags_NoDecorations);
ImPlot::SetupAxesLimits(0, 1, 0, 1, ImPlotCond_Always);
ImPlot::SetupLegend(ImPlotLocation_North | ImPlotLocation_West, ImPlotLegendFlags_Horizontal);
ImPlot::PlotPieChart(labels, dt, 2, 0.5, 0.5, 0.4, "%.3f", 90.0f, ImPlotPieChartFlags_Normalize);
ImPlot::EndPlot();
}
and if you run your application, you will get some type of output like this:
To learn more about using plotting, check out the implot GitHub repository
To check for the module at compile time, use the UIMGUI_PLOTTING_MODULE_ENABLED
macro.
At runtime, use the plotting
public boolean constant member of ModulesManager
.