pub struct Histogram {
pub data: Vec<f64>,
pub bins: usize,
pub bin_edges: Vec<f64>,
pub bin_counts: Vec<u64>,
pub color: Vec4,
pub outline_color: Option<Vec4>,
pub outline_width: f32,
pub normalize: bool,
pub label: Option<String>,
pub visible: bool,
/* private fields */
}Expand description
High-performance GPU-accelerated histogram
Fields§
§data: Vec<f64>Raw data values
bins: usizeHistogram configuration
bin_edges: Vec<f64>§bin_counts: Vec<u64>§color: Vec4Visual styling
outline_color: Option<Vec4>§outline_width: f32§normalize: bool§label: Option<String>Metadata
visible: boolImplementations§
Source§impl Histogram
impl Histogram
Sourcepub fn new(data: Vec<f64>, bins: usize) -> Result<Self, String>
pub fn new(data: Vec<f64>, bins: usize) -> Result<Self, String>
Create a new histogram with data and number of bins
Sourcepub fn with_bin_edges(
data: Vec<f64>,
bin_edges: Vec<f64>,
) -> Result<Self, String>
pub fn with_bin_edges( data: Vec<f64>, bin_edges: Vec<f64>, ) -> Result<Self, String>
Create a histogram with custom bin edges
Sourcepub fn with_style(self, color: Vec4, normalize: bool) -> Self
pub fn with_style(self, color: Vec4, normalize: bool) -> Self
Set styling options
Sourcepub fn with_outline(self, outline_color: Vec4, outline_width: f32) -> Self
pub fn with_outline(self, outline_color: Vec4, outline_width: f32) -> Self
Add outline to bars
Sourcepub fn without_outline(self) -> Self
pub fn without_outline(self) -> Self
Remove outline
Sourcepub fn with_label<S: Into<String>>(self, label: S) -> Self
pub fn with_label<S: Into<String>>(self, label: S) -> Self
Set the histogram label for legends
Sourcepub fn update_data(&mut self, data: Vec<f64>) -> Result<(), String>
pub fn update_data(&mut self, data: Vec<f64>) -> Result<(), String>
Update the data and recompute histogram
Sourcepub fn set_bins(&mut self, bins: usize) -> Result<(), String>
pub fn set_bins(&mut self, bins: usize) -> Result<(), String>
Set the number of bins and recompute
Sourcepub fn set_normalize(&mut self, normalize: bool)
pub fn set_normalize(&mut self, normalize: bool)
Enable or disable normalization
Sourcepub fn set_visible(&mut self, visible: bool)
pub fn set_visible(&mut self, visible: bool)
Show or hide the histogram
Sourcepub fn generate_vertices(&mut self) -> (&Vec<Vertex>, &Vec<u32>)
pub fn generate_vertices(&mut self) -> (&Vec<Vertex>, &Vec<u32>)
Generate vertices for GPU rendering
Sourcepub fn bounds(&mut self) -> BoundingBox
pub fn bounds(&mut self) -> BoundingBox
Get the bounding box of the histogram
Sourcepub fn render_data(&mut self) -> RenderData
pub fn render_data(&mut self) -> RenderData
Generate complete render data for the graphics pipeline
Sourcepub fn statistics(&self) -> HistogramStatistics
pub fn statistics(&self) -> HistogramStatistics
Get histogram statistics
Sourcepub fn estimated_memory_usage(&self) -> usize
pub fn estimated_memory_usage(&self) -> usize
Estimate memory usage in bytes
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Histogram
impl RefUnwindSafe for Histogram
impl Send for Histogram
impl Sync for Histogram
impl Unpin for Histogram
impl UnwindSafe for Histogram
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more