Skip to main content

Crate dear_implot

Crate dear_implot 

Source
Expand description

§Dear ImPlot - Rust Bindings with Dear ImGui Compatibility

High-level Rust bindings for ImPlot, the immediate mode plotting library. This crate provides safe, idiomatic Rust bindings designed to work seamlessly with dear-imgui (C++ bindgen) rather than imgui-rs (cimgui).

§Features

  • Safe, idiomatic Rust API
  • Full compatibility with dear-imgui
  • Builder pattern for plots and plot elements
  • Memory-safe string handling
  • Support for all major plot types

§Quick Start

use dear_imgui_rs::*;
use dear_implot::*;

let mut ctx = Context::create();
let mut plot_ctx = PlotContext::create(&ctx);

let ui = ctx.frame();
let plot_ui = plot_ctx.get_plot_ui(&ui);

if let Some(token) = plot_ui.begin_plot("My Plot") {
    plot_ui.plot_line("Line", &[1.0, 2.0, 3.0, 4.0], &[1.0, 4.0, 2.0, 3.0]);
    token.end();
}

§Integration with Dear ImGui

This crate is designed to work with the dear-imgui-rs ecosystem:

  • Uses the same context management patterns
  • Compatible with dear-imgui’s UI tokens and lifetime management
  • Shares the same underlying Dear ImGui context

Re-exports§

pub use plots::Plot;
pub use plots::PlotData;
pub use plots::PlotDataLayout;
pub use plots::PlotDataOffset;
pub use plots::PlotDataStride;
pub use plots::PlotError;
pub use plots::bar::BarPlot;
pub use plots::bar::PositionalBarPlot;
pub use plots::error_bars::AsymmetricErrorBarsPlot;
pub use plots::error_bars::ErrorBarsPlot;
pub use plots::error_bars::SimpleErrorBarsPlot;
pub use plots::heatmap::HeatmapPlot;
pub use plots::heatmap::HeatmapPlotF32;
pub use plots::histogram::Histogram2DPlot;
pub use plots::histogram::HistogramPlot;
pub use plots::line::LinePlot;
pub use plots::line::SimpleLinePlot;
pub use plots::pie::PieChartPlot;
pub use plots::pie::PieChartPlotF32;
pub use plots::polygon::PolygonPlot;
pub use plots::scatter::ScatterPlot;
pub use plots::scatter::SimpleScatterPlot;
pub use plots::shaded::ShadedBetweenPlot;
pub use plots::shaded::ShadedPlot;
pub use plots::shaded::SimpleShadedPlot;
pub use plots::stems::SimpleStemPlot;
pub use plots::stems::StemPlot;
pub use plots::*;

Modules§

plots
Modular plot types for ImPlot

Macros§

dummy_plots
Macro for creating multiple dummy plots easily
legend_group
Macro for creating a legend group
plot_text
Convenience macro for creating formatted text plots

Structs§

AxisFlags
Axis flags matching ImPlotAxisFlags_ (see cimplot.h)
AxisFormatterToken
AxisTransformToken
BarGroupsFlags
Flags for bar groups plots
BarsFlags
Flags for bar plots
ColormapColorIndex
Zero-based color entry inside the active or selected colormap.
ColormapIndex
Runtime ImPlot colormap index.
ColormapToken
Token for managing colormap changes.
Context
An imgui context.
DigitalFlags
Flags for digital plots
DragResult
Result of a drag interaction
DragToolFlags
Flags for drag tools (points/lines)
DragToolId
Stable identity for ImPlot drag point/line helpers.
DummyFlags
Flags for dummy plots
ErrorBarsFlags
Flags for error bar plots
HeatmapFlags
Flags for heatmap plots
HistogramFlags
Flags for histogram plots
ImageFlags
Flags for image plots
InfLinesFlags
Flags for infinite lines plots
ItemFlags
Flags for ANY PlotX function. Used by setting ImPlotSpec::Flags.
LegendFlags
Flags for legend configuration (ImPlotLegendFlags)
LegendManager
Legend management utilities
LegendToken
Token representing an active legend
LineFlags
Flags for line plots
MultiAxisPlot
Multi-axis plot support
MultiAxisToken
Token representing an active multi-axis plot
PieChartFlags
Flags for pie chart plots
PlotClipRectToken
Token for a pushed ImPlot plot clip rect.
PlotContext
ImPlot context that manages the plotting state
PlotItemArrayStyle
One-shot array-backed item style overrides for the next plot submission.
PlotToken
Token that represents an active plot
PlotUi
A temporary reference for building plots
PolygonFlags
Flags for polygon plots
ScatterFlags
Flags for scatter plots
ShadedFlags
Flags for shaded plots
StairsFlags
Flags for stairs plots
StemsFlags
Flags for stem plots
StyleColorToken
Token for managing style color changes
StyleVarToken
Token for managing style variable changes
SubplotFlags
Flags for subplot configuration
SubplotGrid
Multi-plot layout manager for creating subplot grids
SubplotToken
Token representing an active subplot grid
TextFlags
Flags for text plots
Ui
Represents the Dear ImGui user interface for one frame
YAxisConfig
Configuration for a Y-axis

Enums§

Axis
Any ImPlot axis selector matching ImPlot’s ImAxis values.
BinMethod
Binning methods for histograms
Colormap
Built-in colormaps
ColormapSelection
Selected colormap for helpers that may use either the current style colormap or an explicit one.
HistogramBins
Histogram bin selector.
LegendLocation
Legend location options (ImPlotLocation)
Marker
Markers for plot points
PlotColorElement
Colorable plot elements
PlotCond
Plot condition (setup/next) matching ImPlotCond (ImGuiCond)
PlotLocation
Plot location for legends, labels, etc.
PlotOrientation
Plot orientation
StyleVar
Style variables that can be modified
XAxis
X axis selector matching ImPlot’s ImAxis values
YAxis
Y axis selector matching ImPlot’s ImAxis values
YAxisChoice
Choice of Y axis for multi-axis plots

Traits§

ImPlotExt
Ui extension for obtaining a PlotUi from an ImPlot PlotContext

Type Aliases§

ImPlotPoint
ImPlotRange
ImPlotRect
ImTextureID
ImVec2
ImVec4