pub struct BarChart {
pub labels: Vec<String>,
pub color: Vec4,
pub bar_width: f32,
pub outline_color: Option<Vec4>,
pub outline_width: f32,
pub orientation: Orientation,
pub group_index: usize,
pub group_count: usize,
pub stack_offsets: Option<Vec<f64>>,
pub label: Option<String>,
pub visible: bool,
/* private fields */
}Expand description
High-performance GPU-accelerated bar chart
Fields§
§labels: Vec<String>Category labels and values
color: Vec4Visual styling
bar_width: f32§outline_color: Option<Vec4>§outline_width: f32§orientation: OrientationOrientation (vertical = default bar, horizontal = barh)
group_index: usizeGrouped bar configuration: index within group and total group count Example: for 3-series grouped bars, group_count=3 and each series has group_index 0,1,2
group_count: usize§stack_offsets: Option<Vec<f64>>Stacked bar offsets per category (bottom/base for each bar) When provided, bars are drawn starting at offset[i] and extending by values[i]
label: Option<String>Metadata
visible: boolImplementations§
Source§impl BarChart
impl BarChart
Sourcepub fn new(labels: Vec<String>, values: Vec<f64>) -> Result<Self, String>
pub fn new(labels: Vec<String>, values: Vec<f64>) -> Result<Self, String>
Create a new bar chart with labels and values
Sourcepub fn from_gpu_buffer(
labels: Vec<String>,
value_count: usize,
buffer: GpuVertexBuffer,
vertex_count: usize,
bounds: BoundingBox,
color: Vec4,
bar_width: f32,
) -> Self
pub fn from_gpu_buffer( labels: Vec<String>, value_count: usize, buffer: GpuVertexBuffer, vertex_count: usize, bounds: BoundingBox, color: Vec4, bar_width: f32, ) -> Self
Build a bar chart backed by a GPU vertex buffer.
pub fn set_data( &mut self, labels: Vec<String>, values: Vec<f64>, ) -> Result<(), String>
Sourcepub fn with_style(self, color: Vec4, bar_width: f32) -> Self
pub fn with_style(self, color: Vec4, bar_width: f32) -> Self
Create a bar chart with custom styling
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 with_orientation(self, orientation: Orientation) -> Self
pub fn with_orientation(self, orientation: Orientation) -> Self
Set orientation (vertical/horizontal)
pub fn bar_count(&self) -> usize
pub fn values(&self) -> Option<&[f64]>
pub fn stack_offsets(&self) -> Option<&[f64]>
pub fn histogram_bin_edges(&self) -> Option<&[f64]>
pub fn set_histogram_bin_edges(&mut self, edges: Vec<f64>)
pub fn set_per_bar_colors(&mut self, colors: Vec<Vec4>)
pub fn clear_per_bar_colors(&mut self)
Sourcepub fn with_group(self, group_index: usize, group_count: usize) -> Self
pub fn with_group(self, group_index: usize, group_count: usize) -> Self
Configure grouped bars (index within group and total group count)
Sourcepub fn with_stack_offsets(self, offsets: Vec<f64>) -> Self
pub fn with_stack_offsets(self, offsets: Vec<f64>) -> Self
Configure stacked bars with per-category offsets (base values)
Sourcepub fn with_label<S: Into<String>>(self, label: S) -> Self
pub fn with_label<S: Into<String>>(self, label: S) -> Self
Set the chart label for legends
Sourcepub fn update_data(
&mut self,
labels: Vec<String>,
values: Vec<f64>,
) -> Result<(), String>
pub fn update_data( &mut self, labels: Vec<String>, values: Vec<f64>, ) -> Result<(), String>
Update the data
Sourcepub fn set_bar_width(&mut self, width: f32)
pub fn set_bar_width(&mut self, width: f32)
Set the bar width (0.1 to 1.0)
Sourcepub fn apply_face_style(&mut self, color: Vec4, width: f32)
pub fn apply_face_style(&mut self, color: Vec4, width: f32)
Override the face color and width without invalidating GPU data.
Sourcepub fn set_outline_color(&mut self, color: Vec4)
pub fn set_outline_color(&mut self, color: Vec4)
Set the outline color (enables outline if not present)
Sourcepub fn set_outline_width(&mut self, width: f32)
pub fn set_outline_width(&mut self, width: f32)
Set the outline width (enables outline if not present)
Sourcepub fn apply_outline_style(&mut self, color: Option<Vec4>, width: f32)
pub fn apply_outline_style(&mut self, color: Option<Vec4>, width: f32)
Override outline styling while preserving GPU geometry when possible.
Sourcepub fn set_visible(&mut self, visible: bool)
pub fn set_visible(&mut self, visible: bool)
Show or hide the chart
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 chart
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) -> BarChartStatistics
pub fn statistics(&self) -> BarChartStatistics
Get chart statistics for debugging
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 BarChart
impl !RefUnwindSafe for BarChart
impl Send for BarChart
impl Sync for BarChart
impl Unpin for BarChart
impl UnsafeUnpin for BarChart
impl !UnwindSafe for BarChart
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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