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§
- Axis
Flags - Axis flags matching ImPlotAxisFlags_ (see cimplot.h)
- Axis
Formatter Token - Axis
Transform Token - BarGroups
Flags - Flags for bar groups plots
- Bars
Flags - Flags for bar plots
- Colormap
Color Index - Zero-based color entry inside the active or selected colormap.
- Colormap
Index - Runtime ImPlot colormap index.
- Colormap
Token - Token for managing colormap changes.
- Context
- An imgui context.
- Digital
Flags - Flags for digital plots
- Drag
Result - Result of a drag interaction
- Drag
Tool Flags - Flags for drag tools (points/lines)
- Drag
Tool Id - Stable identity for ImPlot drag point/line helpers.
- Dummy
Flags - Flags for dummy plots
- Error
Bars Flags - Flags for error bar plots
- Heatmap
Flags - Flags for heatmap plots
- Histogram
Flags - Flags for histogram plots
- Image
Flags - Flags for image plots
- InfLines
Flags - Flags for infinite lines plots
- Item
Flags - Flags for ANY
PlotXfunction. Used by settingImPlotSpec::Flags. - Legend
Flags - Flags for legend configuration (ImPlotLegendFlags)
- Legend
Manager - Legend management utilities
- Legend
Token - Token representing an active legend
- Line
Flags - Flags for line plots
- Multi
Axis Plot - Multi-axis plot support
- Multi
Axis Token - Token representing an active multi-axis plot
- PieChart
Flags - Flags for pie chart plots
- Plot
Clip Rect Token - Token for a pushed ImPlot plot clip rect.
- Plot
Context - ImPlot context that manages the plotting state
- Plot
Item Array Style - One-shot array-backed item style overrides for the next plot submission.
- Plot
Token - Token that represents an active plot
- PlotUi
- A temporary reference for building plots
- Polygon
Flags - Flags for polygon plots
- Scatter
Flags - Flags for scatter plots
- Shaded
Flags - Flags for shaded plots
- Stairs
Flags - Flags for stairs plots
- Stems
Flags - Flags for stem plots
- Style
Color Token - Token for managing style color changes
- Style
VarToken - Token for managing style variable changes
- Subplot
Flags - Flags for subplot configuration
- Subplot
Grid - Multi-plot layout manager for creating subplot grids
- Subplot
Token - Token representing an active subplot grid
- Text
Flags - Flags for text plots
- Ui
- Represents the Dear ImGui user interface for one frame
- YAxis
Config - 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
- Colormap
Selection - Selected colormap for helpers that may use either the current style colormap or an explicit one.
- Histogram
Bins - Histogram bin selector.
- Legend
Location - Legend location options (ImPlotLocation)
- Marker
- Markers for plot points
- Plot
Color Element - Colorable plot elements
- Plot
Cond - Plot condition (setup/next) matching ImPlotCond (ImGuiCond)
- Plot
Location - Plot location for legends, labels, etc.
- Plot
Orientation - Plot orientation
- Style
Var - Style variables that can be modified
- XAxis
- X axis selector matching ImPlot’s ImAxis values
- YAxis
- Y axis selector matching ImPlot’s ImAxis values
- YAxis
Choice - Choice of Y axis for multi-axis plots
Traits§
- ImPlot
Ext - Ui extension for obtaining a PlotUi from an ImPlot PlotContext