Range Area Chart

A range area chart displays a filled band between upper and lower bound values for each data point. It is ideal for visualizing confidence intervals, min/max ranges, temperature bands, and forecast uncertainty in Blazor applications.

Basic Usage

<ArcadiaRangeAreaChart TItem="MonthlyTemperature" Data="@data"
                     XField="@(d => (object)d.Month)"
                     UpperField="@(d => d.High)"
                     LowerField="@(d => d.Low)"
                     MiddleField="@(d => d.Average)"
                     Height="400" Width="700"
                     Title="Monthly Temperature Range"
                     CurveType="smooth" />

@code {
    record MonthlyTemperature(string Month, double High, double Low, double Average);

    List<MonthlyTemperature> data = new()
    {
        new("Jan", 42, 28, 35), new("Feb", 45, 30, 37),
        new("Mar", 55, 38, 46), new("Apr", 65, 45, 55),
        new("May", 75, 55, 65), new("Jun", 85, 65, 75),
        new("Jul", 90, 70, 80), new("Aug", 88, 68, 78),
        new("Sep", 80, 60, 70), new("Oct", 68, 48, 58),
        new("Nov", 55, 38, 46), new("Dec", 44, 30, 37),
    };
}

Parameters

ParameterTypeDefaultDescription
XFieldFunc<T, object>requiredExtracts the X-axis label from each data item
UpperFieldFunc<T, double>requiredExtracts the upper bound value
LowerFieldFunc<T, double>requiredExtracts the lower bound value
MiddleFieldFunc<T, double>?nullOptional middle line value (e.g., average)
FillColorstring"var(--arcadia-color-primary, #2563eb)"Fill color for the range band
FillOpacitydouble0.2Opacity of the range band fill (0.0 to 1.0)
StrokeColorstring"var(--arcadia-color-primary, #2563eb)"Stroke color for upper/lower boundary lines
MiddleColorstring?nullStroke color for the middle line (defaults to StrokeColor)
LineStrokeWidthdouble2Stroke width for the upper, lower, and middle boundary lines
CurveTypestring"linear"Curve interpolation: "linear" or "smooth"

Plus all shared ChartBase parameters.

How It Works

  • Two paths are rendered for the upper and lower bounds
  • A filled area path connects the upper line forward and lower line reversed to create the band
  • An optional middle line (dashed) renders on top for averages or medians
  • Set CurveType="smooth" for Catmull-Rom spline interpolation

Use Cases

  • Temperature bands — daily high/low with average
  • Confidence intervals — statistical upper/lower bounds around a forecast
  • Stock price ranges — daily trading range (high/low)
  • Sensor tolerance bands — acceptable range with actual reading
  • Weather forecasts — predicted temperature range over time

Features

  • Filled band between upper and lower bounds with configurable opacity
  • Optional middle line for averages or medians
  • Smooth curve interpolation via Catmull-Rom splines
  • Hover tooltips on data points (upper, lower, middle)
  • On-load animation for fill and stroke
  • PNG/SVG export via toolbar (hover top-right)
  • Screen reader accessible data table
  • Theme-aware colors via CSS custom properties