Table of Contents

Namespace BlazOrbit.Charts.Components

Classes

BOBAreaChart<TX, TY>

Area chart - line chart with the region between the line and the X axis baseline filled. Each series renders as its own filled region (overlapping when series intersect); a stacked variant is on the v2 roadmap.

Inherits the full Line-chart pipeline (axes, smooth interpolation, X-axis auto-detect for numeric / temporal / categorical) and overrides the per-series shape to add a filled <path> beneath the stroke. Markers are off by default - area charts emphasise the filled volume, not the individual data points.

BOBBarChart<TX, TY>

Vertical bar chart with multi-series support. X axis is categorical (typically string labels), Y axis is a linear numeric scale.

BOBBoxplotChart<TX>

Box-and-whisker plot - distribution comparison across categorical groups. Each box renders the IQR (Q1..Q3), median line, whiskers (typically ±1.5·IQR) and individual outlier dots.

BOBCandlestickChart<TX>

Candlestick / OHLC chart for financial time series. Each BOBChartCandlePoint<TX> renders as a vertical wick from Low to High with a body spanning Open to Close. Bullish bars (Close ≥ Open) use UpColor; bearish bars use DownColor. Set ShowVolumePane to overlay a volume bar pane on the bottom 20% of the plot, sharing the X axis.

BOBChartBase<TX, TY>

Abstract base for every BOBCharts component (Bar, Line, Pie / Donut, Area). Provides:

  • The <bob-component data-bob-component="…" data-bob-data-visualization-base> host element shared by the family.
  • A child <svg> root sized by Width / Height (or 100% when both are null).
  • The RenderSvg(RenderTreeBuilder) hook concrete charts override to emit their geometry inside the SVG.
  • Optional Export-as-PNG button wired through IChartJsInterop.

Concrete subclasses are sealed and live in the same namespace.

BOBChartFilterContext
BOBDonutChart<TY>

Donut chart - annular distribution. Identical to BOBPieChart<TY> but with a non-zero inner radius (default 0.6 of the outer radius) so the centre is hollow. Useful for embedding a KPI label inside the ring.

BOBFunnelChart<TY>

Funnel chart - visualizes a multi-stage drop-off pipeline. Each step's row width auto-scales to the largest value in the funnel; the row height is uniform. Useful for sales pipelines, ad attribution funnels and onboarding completion analyses.

BOBGaugeChart

Gauge chart - single-value KPI display rendered as an arc fill against a track. Supports semi (180°), three-quarter (270°) and full (360°) shapes plus optional zone Segments (e.g. green-amber-red thresholds). The current Value drives the fill arc and the centered numeric readout.

BOBHeatmapChart<TX, TY>

Heatmap - 2D matrix where each cell's intensity maps to a color in a sequential ramp between LowColor and HighColor. Useful for correlation matrices, calendar heatmaps (GitHub-style), hourly traffic, retention cohorts.

BOBHistogramChart<T>

Histogram - distribution of a single numeric variable. Auto-bins the raw Values using BinRule and renders each bin as a vertical bar. Includes a quantile readout (Median, P95) optionally shown via the ShowQuantileLines flag.

BOBLineChart<TX, TY>

Continuous line chart with multi-series support. Auto-detects the X axis type from TX:

  • Numeric (int, double, decimal, …) → linear scale.
  • System.DateTime, System.DateTimeOffset, System.TimeSpan → temporal linear scale (projected via Ticks; format string controls the tick label rendering).
  • Anything else → falls back to a categorical scale, equally spaced by category index in declaration order.
Y axis is always linear-numeric.
BOBMixedChart<TX>

Combined-series chart: bar + line + area in the same plot, sharing the X axis and optionally a secondary Y axis (right side, distinct range). Useful for "actual vs target" / "value vs ratio" / "stock vs index" comparisons where one series belongs to a different domain than the others.

BOBPieChartBase<TY>

Shared rendering pipeline for circular distribution charts. Subclassed by BOBPieChart<TY> (full disc, InnerRadius = 0) and BOBDonutChart<TY> (annulus, InnerRadius ≈ 0.6).

Pie / donut do not have X / Y axes, so this base derives from BOBChartBase<object, TY> with TX bound to the dummy object type.

BOBPieChart<TY>

Pie chart - full circular distribution. Each BOBChartSlice's value is normalised to 100% across the slice set; slice order goes clockwise from 12 o'clock following declaration order.

For an annular variant (donut), see BOBDonutChart<TY>.

BOBPolarAreaChart<TY>

Polar-area / Coxcomb / Rose chart - variant of pie where every slice has the same angular width but the radius encodes the magnitude. Useful for cyclic data (months, hours-of-day) where you want to preserve uniform angular slots and let the radii do the talking.

BOBRadarChart<TX, TY>

Radar / spider chart - multi-dimensional comparison across N axes. Each BOBChartSeries<TX, TY> contributes one closed polygon, with one vertex per TX category. Best for 3-12 axes; more becomes hard to read.

BOBSankeyChart<TY>

Sankey flow diagram - visualises mass / energy / monetary movement between named nodes as variable-thickness ribbons. The chart auto-derives node columns from the edge graph (topological rank by reachability from sources) so consumers only describe the links; positions are computed.

BOBScatterChart<TX, TY>

Scatter / bubble chart. Each data point renders as an independent marker with no inter-point connection.

Both parameter sets can coexist (mixed scatter + bubble overlays).
BOBStockChart<TX>

Multi-pane stock chart - extends the candlestick paradigm with stacked indicator panes (RSI, MACD, Volume) and overlay indicators (Bollinger Bands) on the price pane. Panes share the X axis so the user can correlate price action with momentum / volume signals.

BOBSunburstChart<TY>

Radial variant of BOBTreemapChart<TY>. Hierarchical nodes render as concentric arcs - innermost ring for root nodes, outer rings for their descendants. Shares BOBChartTreemapNode<TY> with the treemap so consumers can swap representations without rebuilding their dataset.

BOBTreemapChart<TY>

Hierarchical treemap - subdivides the chart area into nested rectangles whose size is proportional to each node's value. Uses the squarified algorithm (Bruls / Huijing / van Wijk, 2000) so rectangles stay close to square, making adjacent magnitudes easier to compare than the long thin strips of the classic slice-and-dice approach.