Expand description
siplot — silx-style scientific plotting on top of egui + wgpu.
See doc/design.md for the design. The layering mirrors silx’s
BackendBase ↔ BackendPygfx:
core— thePlotmodel +Backendtrait + shared types (Transform/Colormap …)render— the wgpu renderer (egui_wgpu::CallbackTraitimpl), owns GPU resourceswidget— high-level plotting widgets plusPlotViewfor chrome + interaction + paint-callback registration
Current scope: vertical slice 1, steps 1–5 — a wgpu data layer (clear, colormapped image, polyline curve) under egui chrome (frame, grid, ticks, tick labels, colorbar), all sharing one coordinate transform.
Re-exports§
pub use crate::core::backend::Backend;pub use crate::core::backend::CurveColor;pub use crate::core::backend::CurveSpec;pub use crate::core::backend::ImagePixelsSpec;pub use crate::core::backend::ImageSpec;pub use crate::core::backend::ItemHandle;pub use crate::core::backend::MarkerSpec;pub use crate::core::backend::PickResult;pub use crate::core::backend::ShapeSpec;pub use crate::core::backend::TriangleSpec;pub use crate::core::background::Background;pub use crate::core::background::DEFAULT_SNIP_WIDTH;pub use crate::core::background::DEFAULT_STRIP_ITERATIONS;pub use crate::core::background::DEFAULT_STRIP_THRESHOLD_FACTOR;pub use crate::core::background::DEFAULT_STRIP_WIDTH;pub use crate::core::background::poly_eval;pub use crate::core::background::polyfit;pub use crate::core::background::snip_background;pub use crate::core::background::strip_background;pub use crate::core::calibration::Calibration;pub use crate::core::colormap::AutoscaleMode;pub use crate::core::colormap::Colormap;pub use crate::core::colormap::ColormapName;pub use crate::core::colormap::DEFAULT_PERCENTILES;pub use crate::core::colormap::Normalization;pub use crate::core::colormap::register_colormap;pub use crate::core::colormap::registered_colormap_cursor_color;pub use crate::core::colormap::registered_colormaps;pub use crate::core::colormap_io::ColormapIoError;pub use crate::core::colormap_io::decode_colormap;pub use crate::core::colormap_io::encode_colormap;pub use crate::core::colormap_io::load_colormap;pub use crate::core::colormap_io::save_colormap;pub use crate::core::decimate::min_max_decimate;pub use crate::core::dtime_ticks::DateTime;pub use crate::core::dtime_ticks::DtUnit;pub use crate::core::dtime_ticks::TimeZone;pub use crate::core::dtime_ticks::best_unit;pub use crate::core::dtime_ticks::calc_ticks;pub use crate::core::dtime_ticks::calc_ticks_adaptive;pub use crate::core::dtime_ticks::calc_ticks_adaptive_tz;pub use crate::core::dtime_ticks::calc_ticks_tz;pub use crate::core::dtime_ticks::format_tick;pub use crate::core::dtime_ticks::format_tick_tz;pub use crate::core::dtime_ticks::format_ticks;pub use crate::core::dtime_ticks::format_ticks_tz;pub use crate::core::fitting::BackgroundPeakFit;pub use crate::core::fitting::Constraint;pub use crate::core::fitting::DEFAULT_DELTACHI;pub use crate::core::fitting::DEFAULT_MAX_ITER;pub use crate::core::fitting::FitError;pub use crate::core::fitting::FitFunction;pub use crate::core::fitting::FitResult;pub use crate::core::fitting::GaussianEstimateFit;pub use crate::core::fitting::IterativeFit;pub use crate::core::fitting::IterativeFitResult;pub use crate::core::fitting::LOG2;pub use crate::core::fitting::LeastSqResult;pub use crate::core::fitting::LinearFit;pub use crate::core::fitting::PeakModel;pub use crate::core::fitting::atan_stepup_model;pub use crate::core::fitting::estimate_atan_stepup;pub use crate::core::fitting::estimate_gaussian;pub use crate::core::fitting::estimate_gaussian_area;pub use crate::core::fitting::estimate_height_position_fwhm;pub use crate::core::fitting::estimate_lorentzian;pub use crate::core::fitting::estimate_multi_gaussian;pub use crate::core::fitting::estimate_pseudo_voigt;pub use crate::core::fitting::estimate_slit;pub use crate::core::fitting::estimate_stepdown;pub use crate::core::fitting::estimate_stepup;pub use crate::core::fitting::fit_in_range;pub use crate::core::fitting::fit_multi_gaussian;pub use crate::core::fitting::fit_multi_gaussian_full;pub use crate::core::fitting::fit_peak_constrained;pub use crate::core::fitting::fit_peak_from;pub use crate::core::fitting::fit_peak_with_background;pub use crate::core::fitting::fwhm_to_sigma_factor;pub use crate::core::fitting::gaussian_area_model;pub use crate::core::fitting::gaussian_model;pub use crate::core::fitting::invert_matrix;pub use crate::core::fitting::leastsq;pub use crate::core::fitting::leastsq_constrained;pub use crate::core::fitting::lorentzian_model;pub use crate::core::fitting::multi_gaussian_model;pub use crate::core::fitting::pseudo_voigt_model;pub use crate::core::fitting::slit_model;pub use crate::core::fitting::stepdown_model;pub use crate::core::fitting::stepup_model;pub use crate::core::items::Baseline;pub use crate::core::items::ErrorBars;pub use crate::core::items::LineStyle;pub use crate::core::items::ScalarMask;pub use crate::core::items::Symbol;pub use crate::core::marker::DEFAULT_MARKER_SIZE;pub use crate::core::marker::Marker;pub use crate::core::marker::MarkerConstraint;pub use crate::core::marker::MarkerKind;pub use crate::core::marker::MarkerSymbol;pub use crate::core::marker::TextAnchor;pub use crate::core::marker::apply_constraint;pub use crate::core::peaks::DEFAULT_PEAK_SENSITIVITY;pub use crate::core::peaks::Peak;pub use crate::core::peaks::guess_fwhm;pub use crate::core::peaks::peak_search;pub use crate::core::peaks::peak_search_range;pub use crate::core::plot::AxisConstraints;pub use crate::core::plot::DataMargins;pub use crate::core::plot::DataRange;pub use crate::core::plot::DirtyState;pub use crate::core::plot::ExtraAxis;pub use crate::core::plot::GraphGrid;pub use crate::core::plot::Plot;pub use crate::core::plot::PlotId;pub use crate::core::plot::TickMode;pub use crate::core::plot::resolved_axis_label;pub use crate::core::roi::BandLines;pub use crate::core::roi::ManagedRoi;pub use crate::core::roi::Roi;pub use crate::core::roi::RoiEdge;pub use crate::core::roi::RoiInteractionMode;pub use crate::core::roi::RoiLineStyle;pub use crate::core::roi_io::RoiIoError;pub use crate::core::roi_io::decode_rois;pub use crate::core::roi_io::encode_rois;pub use crate::core::roi_io::load_rois;pub use crate::core::roi_io::save_rois;pub use crate::core::scatter_viz::BinnedStatistic;pub use crate::core::scatter_viz::BinnedStatisticFunction;pub use crate::core::scatter_viz::GridImage;pub use crate::core::scatter_viz::GridMajorOrder;pub use crate::core::scatter_viz::PointsViz;pub use crate::core::scatter_viz::RegularGrid;pub use crate::core::scatter_viz::ScatterLineProfile;pub use crate::core::scatter_viz::Triangulation;pub use crate::core::scatter_viz::binned_statistic;pub use crate::core::scatter_viz::delaunay;pub use crate::core::scatter_viz::detect_regular_grid;pub use crate::core::scatter_viz::interpolate;pub use crate::core::scatter_viz::irregular_grid_image;pub use crate::core::scatter_viz::irregular_grid_pick;pub use crate::core::scatter_viz::irregular_grid_triangles;pub use crate::core::scatter_viz::regular_grid_pick;pub use crate::core::scatter_viz::scatter_line_profile;pub use crate::core::scatter_viz::solid_triangles;pub use crate::core::scene3d::camera::Camera;pub use crate::core::scene3d::camera::CameraDirection;pub use crate::core::scene3d::camera::CameraExtrinsic;pub use crate::core::scene3d::camera::CameraFace;pub use crate::core::scene3d::camera::CameraMove;pub use crate::core::scene3d::camera::Orthographic;pub use crate::core::scene3d::camera::Perspective;pub use crate::core::scene3d::camera::Projection;pub use crate::core::scene3d::interaction::OrbitDrag;pub use crate::core::scene3d::interaction::PanDrag;pub use crate::core::scene3d::interaction::window_to_ndc;pub use crate::core::scene3d::marching_cubes::MarchingCubes;pub use crate::core::scene3d::marching_cubes::MarchingCubesError;pub use crate::core::scene3d::marching_cubes::isosurface;pub use crate::core::scene3d::mat4::Mat4;pub use crate::core::scene3d::mat4::Vec3;pub use crate::core::scene3d::mat4::mat4_look_at_dir;pub use crate::core::scene3d::mat4::mat4_orthographic;pub use crate::core::scene3d::mat4::mat4_perspective;pub use crate::core::scene3d::mat4::mat4_rotate;pub use crate::core::scene3d::mat4::mat4_scale;pub use crate::core::scene3d::mat4::mat4_translate;pub use crate::core::scene3d::pick::TriangleHit;pub use crate::core::scene3d::pick::picking_segment;pub use crate::core::scene3d::pick::segment_triangles_intersection;pub use crate::core::scene3d::plane::Plane;pub use crate::core::scene3d::plane::angle_between_vectors;pub use crate::core::scene3d::plane::box_plane_intersect;pub use crate::core::scene3d::plane::segment_plane_intersect;pub use crate::core::shape::Line;pub use crate::core::shape::Shape;pub use crate::core::shape::ShapeKind;pub use crate::core::shape::triangulate_simple_polygon;pub use crate::core::sift_align::AffineTransformation;pub use crate::core::sift_align::MATCH_RATIO_THRESHOLD;pub use crate::core::sift_align::MatchedKeypoint;pub use crate::core::sift_align::SiftAlignment;pub use crate::core::sift_align::decompose_affine;pub use crate::core::sift_align::sift_auto_align;pub use crate::core::stats::ComCoord;pub use crate::core::stats::StatScope;pub use crate::core::stats::Stats;pub use crate::core::transform::Axis;pub use crate::core::transform::AxisSide;pub use crate::core::transform::Margins;pub use crate::core::transform::Scale;pub use crate::core::transform::Transform;pub use crate::core::transform::YAxis;pub use crate::core::triangles::Triangles;pub use crate::render::backend_wgpu::WgpuBackend;pub use crate::render::backend_wgpu::install;pub use crate::render::backend_wgpu::set_curve;pub use crate::render::backend_wgpu::set_curves;pub use crate::render::backend_wgpu::set_image;pub use crate::render::backend_wgpu::set_images;pub use crate::render::backend_wgpu::update_curve;pub use crate::render::backend_wgpu::update_curve_at;pub use crate::render::backend_wgpu::update_image_region;pub use crate::render::gpu_curve::CurveData;pub use crate::render::gpu_image::AggregationMode;pub use crate::render::gpu_image::ImageData;pub use crate::render::gpu_image::ImagePixels;pub use crate::render::gpu_image::InterpolationMode;pub use crate::render::gpu_image::aggregate_blocks;pub use crate::render::gpu_scene3d::ImageInterpolation;pub use crate::render::gpu_scene3d::PointMarker;pub use crate::render::gpu_scene3d::Scene3dGeometry;pub use crate::render::gpu_scene3d::Scene3dId;pub use crate::render::gpu_scene3d::Scene3dImageLayer;pub use crate::render::gpu_scene3d::Scene3dMeshVertex;pub use crate::render::gpu_scene3d::Scene3dPoint;pub use crate::render::gpu_scene3d::Scene3dResources;pub use crate::render::gpu_scene3d::Scene3dTexturedMesh;pub use crate::render::gpu_scene3d::Scene3dVertex;pub use crate::render::gpu_scene3d::install_scene3d;pub use crate::render::gpu_scene3d::paint_scene3d;pub use crate::render::gpu_scene3d::set_scene3d;pub use crate::render::gpu_scene3d::snapshot_scene3d;pub use crate::render::save::SaveError;pub use crate::render::save::SaveFormat;pub use crate::render::save::encode_eps;pub use crate::render::save::encode_pdf;pub use crate::render::save::encode_png;pub use crate::render::save::encode_ppm;pub use crate::render::save::encode_svg;pub use crate::render::save::encode_tiff;pub use crate::render::save::rgba_to_rgb;pub use crate::render::save::save_graph;pub use crate::render::save::save_graph_with_format;pub use crate::render::scene3d_items::Box3D;pub use crate::render::scene3d_items::ColormapMesh3D;pub use crate::render::scene3d_items::ComplexField3D;pub use crate::render::scene3d_items::CutPlane;pub use crate::render::scene3d_items::Cylinder3D;pub use crate::render::scene3d_items::DEFAULT_CUT_PLANE_RESOLUTION;pub use crate::render::scene3d_items::DEFAULT_ISOSURFACE_COLOR;pub use crate::render::scene3d_items::DEFAULT_SCATTER3D_SIZE;pub use crate::render::scene3d_items::HeightMapData;pub use crate::render::scene3d_items::HeightMapRGBA;pub use crate::render::scene3d_items::Hexagon3D;pub use crate::render::scene3d_items::ImageData3D;pub use crate::render::scene3d_items::ImageRgba3D;pub use crate::render::scene3d_items::Isosurface;pub use crate::render::scene3d_items::Mesh3D;pub use crate::render::scene3d_items::MeshColor;pub use crate::render::scene3d_items::MeshDrawMode;pub use crate::render::scene3d_items::ScalarField3D;pub use crate::render::scene3d_items::Scatter3D;pub use crate::render::scene3d_items::mean_plus_std;pub use crate::widget::actions;pub use crate::widget::actions::io::SaveTarget;pub use crate::widget::actions::io::curve_to_csv;pub use crate::widget::actions::mode::mask_draw_mode;pub use crate::widget::actions::mode::pan_mode;pub use crate::widget::actions::mode::select_mode;pub use crate::widget::actions::mode::zoom_mode;pub use crate::widget::alpha_slider::ActiveImageAlphaSlider;pub use crate::widget::alpha_slider::AlphaSlider;pub use crate::widget::alpha_slider::AlphaSliderOrientation;pub use crate::widget::alpha_slider::NamedItemAlphaSlider;pub use crate::widget::colorbar::ColorBarOrientation;pub use crate::widget::colorbar::ColorBarWidget;pub use crate::widget::colormap_dialog::ColormapDialog;pub use crate::widget::complex_image_view::ComplexImageView;pub use crate::widget::complex_image_view::ComplexMode;pub use crate::widget::curves_roi_widget::CurveRoiRow;pub use crate::widget::curves_roi_widget::CurvesRoiWidget;pub use crate::widget::fit_widget::FitModelChoice;pub use crate::widget::fit_widget::FitWidget;pub use crate::widget::fit_widget::format_param_value_error;pub use crate::widget::fit_widget::format_reduced_chisq;pub use crate::widget::high_level::CompareAlignment;pub use crate::widget::high_level::CompareImages;pub use crate::widget::high_level::CompareMode;pub use crate::widget::high_level::CurveStats;pub use crate::widget::high_level::CurveStyle;pub use crate::widget::high_level::HistogramAlign;pub use crate::widget::high_level::ImageGeometry;pub use crate::widget::high_level::ImageHistogramAxis;pub use crate::widget::high_level::ImageProfileHistogram;pub use crate::widget::high_level::ImageStats;pub use crate::widget::high_level::ImageView;pub use crate::widget::high_level::ItemStats;pub use crate::widget::high_level::LegendAction;pub use crate::widget::high_level::LegendResponse;pub use crate::widget::high_level::Plot1D;pub use crate::widget::high_level::Plot2D;pub use crate::widget::high_level::PlotDataError;pub use crate::widget::high_level::PlotEvent;pub use crate::widget::high_level::PlotItemKind;pub use crate::widget::high_level::PlotWidget;pub use crate::widget::high_level::PlotWindow;pub use crate::widget::high_level::PlotWithToolbarResponse;pub use crate::widget::high_level::ProfileMethod;pub use crate::widget::high_level::ProfileMode;pub use crate::widget::high_level::ScatterPick;pub use crate::widget::high_level::ScatterView;pub use crate::widget::high_level::ScatterVisualization;pub use crate::widget::high_level::StackPerspective;pub use crate::widget::high_level::StackProfile;pub use crate::widget::high_level::StackProfileDimension;pub use crate::widget::high_level::StackView;pub use crate::widget::high_level::ToolbarResponse;pub use crate::widget::high_level::ValueStats;pub use crate::widget::high_level::aligned_profile_values;pub use crate::widget::high_level::compare_pixel_at;pub use crate::widget::high_level::default_dimension_label;pub use crate::widget::high_level::dimension_axis_labels;pub use crate::widget::high_level::histogram_edges;pub use crate::widget::high_level::histogram_step_values;pub use crate::widget::high_level::horizontal_profile_values;pub use crate::widget::high_level::line_profile_band;pub use crate::widget::high_level::line_profile_values;pub use crate::widget::high_level::pick_histogram;pub use crate::widget::high_level::rect_profile_values;pub use crate::widget::high_level::scatter_pick_pixels;pub use crate::widget::high_level::scatter_position_info;pub use crate::widget::high_level::stack_aligned_profile;pub use crate::widget::high_level::stack_frame;pub use crate::widget::high_level::stack_frame_count;pub use crate::widget::high_level::stack_line_profile;pub use crate::widget::high_level::vertical_profile_values;pub use crate::widget::histogram_colorbar::Handle as HistogramColorBarHandle;pub use crate::widget::histogram_colorbar::HistogramColorBar;pub use crate::widget::histogram_colorbar::HistogramColorBarResponse;pub use crate::widget::image_stack::Frame;pub use crate::widget::image_stack::FrameLoader;pub use crate::widget::image_stack::Hdf5FrameLoader;pub use crate::widget::image_stack::ImageStack;pub use crate::widget::interaction::ArcControlPoint;pub use crate::widget::interaction::ArcControlPoints;pub use crate::widget::interaction::CursorShape;pub use crate::widget::interaction::DrawEvent;pub use crate::widget::interaction::DrawInput;pub use crate::widget::interaction::DrawMode;pub use crate::widget::interaction::DrawParams;pub use crate::widget::interaction::DrawState;pub use crate::widget::interaction::FillMode;pub use crate::widget::interaction::MouseButton;pub use crate::widget::interaction::PanDirection;pub use crate::widget::interaction::PlotPointerEvent;pub use crate::widget::interaction::PointPick;pub use crate::widget::interaction::RoiDrawKind;pub use crate::widget::interaction::RoiGrab;pub use crate::widget::interaction::RoiKeyAction;pub use crate::widget::interaction::SelectionStyle;pub use crate::widget::interaction::arc_control_points;pub use crate::widget::interaction::arc_from_three_points;pub use crate::widget::interaction::arc_from_two_points;pub use crate::widget::interaction::arc_three_point_drag;pub use crate::widget::interaction::constrain_zoom_axes;pub use crate::widget::interaction::cursor_for_edge;pub use crate::widget::interaction::cursor_for_grab;pub use crate::widget::interaction::ellipse_semi_axes;pub use crate::widget::interaction::hatch_lines;pub use crate::widget::interaction::image_index;pub use crate::widget::interaction::nearest_point;pub use crate::widget::interaction::roi_draw_mode;pub use crate::widget::interaction::roi_from_draw;pub use crate::widget::interaction::roi_grab_at;pub use crate::widget::interaction::roi_key_action;pub use crate::widget::items_selection_dialog::ItemsSelectionDialog;pub use crate::widget::items_selection_dialog::SelectableItem;pub use crate::widget::items_selection_dialog::SelectionMode;pub use crate::widget::limits_widget::LimitsWidget;pub use crate::widget::mask_tools::MaskTool;pub use crate::widget::mask_tools::MaskToolsWidget;pub use crate::widget::mask_tools::ThresholdMode;pub use crate::widget::plot_widget::DrawResponse;pub use crate::widget::plot_widget::PlotInteractionMode;pub use crate::widget::plot_widget::PlotResponse;pub use crate::widget::plot_widget::PlotView;pub use crate::widget::position_info::PositionInfo;pub use crate::widget::position_info::SNAP_THRESHOLD_DIST;pub use crate::widget::position_info::Snap;pub use crate::widget::position_info::SnapItem;pub use crate::widget::position_info::SnapItemKind;pub use crate::widget::position_info::SnappingMode;pub use crate::widget::position_info::format_value;pub use crate::widget::position_info::snap_to_nearest;pub use crate::widget::position_info::snapping_candidates;pub use crate::widget::print_preview::CommentPosition;pub use crate::widget::print_preview::PrintPreview;pub use crate::widget::print_preview::compose_page;pub use crate::widget::print_preview::resize_item_rect;pub use crate::widget::profile_window::ProfileWindow;pub use crate::widget::radar_view::DataRect;pub use crate::widget::radar_view::RadarMapping;pub use crate::widget::radar_view::RadarResponse;pub use crate::widget::radar_view::RadarView;pub use crate::widget::radar_view::clamp_viewport;pub use crate::widget::radar_view::point_in_rect;pub use crate::widget::roi_manager::RoiManagerWidget;pub use crate::widget::roi_stats::CurveRoiCounts;pub use crate::widget::roi_stats::RoiStats;pub use crate::widget::roi_stats::curve_roi_counts;pub use crate::widget::roi_stats::curve_roi_stats;pub use crate::widget::roi_stats::image_roi_stats;pub use crate::widget::roi_stats::roi_x_span;pub use crate::widget::roi_stats_widget::RoiStatsRow;pub use crate::widget::roi_stats_widget::RoiStatsWidget;pub use crate::widget::scalar_field_properties::ScalarFieldProperties;pub use crate::widget::scalar_field_view::FieldPick;pub use crate::widget::scalar_field_view::ScalarFieldView;pub use crate::widget::scatter_mask::ScatterMaskWidget;pub use crate::widget::scatter_mask::point_in_polygon;pub use crate::widget::scene_position_info::ScenePositionInfo;pub use crate::widget::scene_widget::PICK_POINT_TOLERANCE_PX;pub use crate::widget::scene_widget::ScenePick;pub use crate::widget::scene_widget::ScenePickKind;pub use crate::widget::scene_widget::SceneWidget;pub use crate::widget::scene_window::SceneWindow;pub use crate::widget::stack_profile_window::StackProfileWindow;pub use crate::widget::stats_widget::StatsInput;pub use crate::widget::stats_widget::StatsWidget;pub use crate::widget::stats_widget::UpdateMode;pub use crate::widget::stats_widget::format_significant;pub use crate::widget::stats_widget::format_stat;pub use crate::widget::sync::SyncAxes;pub use crate::widget::tool_buttons::ProfileToolButton;pub use crate::widget::tool_buttons::RulerToolButton;pub use crate::widget::tool_buttons::SymbolToolButton;pub use crate::widget::tool_buttons::SymbolToolChange;pub use egui;pub use egui_wgpu;