React ChartsRange Bar Series
react logo
Enterprise

A Range Bar Series uses vertical or horizontal bars to show the range between high and low values in data. This series type is commonly used to assess data stability or variability.

Simple Range Bar

The Range Bar Series is created using the range-bar series type.

series: [
    {
        type: 'range-bar',
        xKey: 'department',
        yLowKey: 'low',
        yHighKey: 'high',
    },
],

The yLowKey and yHighKey are used to retrieve the range of values for the Y axis.

Multiple Range Bar Series

Multiple Range Bar Series can be combined into a single chart.

series: [
    {
        type: 'range-bar',
        xKey: 'date',
        yLowKey: 'start',
        yHighKey: 'gain',
        xName: 'Month',
        yLowName: 'Start',
        yHighName: 'End',
        yName: 'Gained',
    },
    {
        type: 'range-bar',
        xKey: 'date',
        yLowKey: 'loss',
        yHighKey: 'gain',
        xName: 'Month',
        yLowName: 'End',
        yHighName: 'Start',
        yName: 'Lost',
    },
],

In this configuration:

  • yName is used to control the text displayed in the legend.
  • yLowName, yHighName and xName are used to control the text displayed in the tooltip.

Missing Data

The series handles missing or invalid data based on the presence or validity of xKey, yLowKey and yHighKey values in the data object.

When the axes types are continuous ('number', 'time' or 'log'), the yLowKey, yHighKey and xKey values in the data object are considered invalid if they are:

  • +/-Infinity
  • null
  • undefined
  • NaN

Data entries with invalid yLowKey, yHighKey and xKey values will result in gaps in the series.

Customisation

Labels

Series labels can be enabled using the label options.

series: [
    {
        // ...
        label: {
            padding: 10,
            formatter: ({ itemId, value }) => {
                return `£${value.toFixed(0)}K ${itemId === 'low' ? '↓' : '↑'}`;
            },
        },
    },
],

In this configuration:

  • The yHighKey and yLowKey values for each data point are presented as labels via the label options.
  • The label.formatter function uses the itemId from the params object to distinguish whether the label is a low or high value.

Corner Radius

The corner radius can be customised with the cornerRadius property.

series: [
    {
        // ...
        cornerRadius: 10,
    },
],

Horizontal Range Bar

To create a Horizontal Range Bar Series, set direction: 'horizontal'.

series: [
    {
        type: 'range-bar',
        direction: 'horizontal',
        xKey: 'department',
        yLowKey: 'low',
        yHighKey: 'high',
    },
],

When the direction is 'horizontal' the xKey will determine categories on the y-axis, while the yLowKey and yHighKey will be used to provide numerical values along the x-axis.

API Reference

Properties available on the AgRangeBarSeriesOptions interface.

type*
Type'range-bar'
xKey*
Typestring
yLowKey*
Typestring
yHighKey*
Typestring
xName
Typestring
yLowName
Typestring
yHighName
Typestring
yName
Typestring
direction
Type'horizontal' | 'vertical'
cornerRadius
TypePixelSize
tooltip
TypeAgSeriesTooltip
highlightStyle
TypeAgSeriesHighlightStyle
label
TypeAgRangeBarSeriesLabelOptions
shadow
TypeAgDropShadowOptions
formatter
TypeFunction
showInMiniChart
Typeboolean
id
Typestring
Defaultauto-generated value
data
TypeTDatum[]
visible
Typeboolean
cursor
Typestring
nodeClickRange
TypeInteractionRange
showInLegend
Typeboolean
listeners
TypeAgSeriesListeners
fill
TypeCssColor
fillOpacity
TypeOpacity
stroke
TypeCssColor
strokeWidth
TypePixelSize
strokeOpacity
TypeOpacity
lineDash
TypePixelSize[]
lineDashOffset
TypePixelSize