Range Column Chart in React Chart component

19 Sep 202421 minutes to read

Range Column

To render a range column series, use series type as RangeColumn and inject RangeColumnSeries module into the services.

import * as React from "react";
import * as ReactDOM from "react-dom";
import { ChartComponent, SeriesCollectionDirective, SeriesDirective, Inject, Legend, Category, Tooltip, DataLabel, RangeColumnSeries } from '@syncfusion/ej2-react-charts';
import { data, data1 } from './datasource';

function App() {
    const primaryxAxis = { valueType: 'Category', title: 'month' };
    const primaryyAxis = { title: 'Temperature(Celsius)' };
    return <ChartComponent id='charts' primaryXAxis={primaryxAxis} primaryYAxis={primaryyAxis} title='Maximum and minimum Temperature'>
                  <Inject services={[RangeColumnSeries, Legend, Tooltip, DataLabel, Category]}/>
                  <SeriesCollectionDirective>
                      <SeriesDirective dataSource={data} xName='x' low='low' high='high' type='RangeColumn'>
                      </SeriesDirective>
                      <SeriesDirective dataSource={data1} xName='x' low='low' high='high' type='RangeColumn'>
                      </SeriesDirective>
                   </SeriesCollectionDirective>
              </ChartComponent>;
}
;
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));
import * as React from "react";
import * as ReactDOM from "react-dom";
import { AxisModel, ChartComponent, SeriesCollectionDirective, SeriesDirective, Inject,
         Legend, Category, Tooltip, DataLabel, Zoom, Crosshair, RangeColumnSeries,  Selection}
from'@syncfusion/ej2-react-charts';
import { data, data1 } from './datasource';

function App() {
    const primaryxAxis: AxisModel= {valueType: 'Category', title: 'month'}  ;
    const primaryyAxis: AxisModel= { title: 'Temperature(Celsius)'}  ;

        return <ChartComponent id='charts'
                primaryXAxis={ primaryxAxis }
                primaryYAxis={ primaryyAxis }
                title='Maximum and minimum Temperature'>
                  <Inject services={[RangeColumnSeries, Legend, Tooltip, DataLabel,  Category]}/>
                  <SeriesCollectionDirective>
                      <SeriesDirective dataSource ={data}  xName='x' low='low' high='high' type='RangeColumn'>
                      </SeriesDirective>
                      <SeriesDirective dataSource ={data1}  xName='x' low='low' high='high' type='RangeColumn'>
                      </SeriesDirective>
                   </SeriesCollectionDirective>
              </ChartComponent>
};
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));
export let data = [
    { x: 'Jan', low: 0.7,  high: 6.1 },   { x: 'Feb', low: 1.3,  high: 6.3 },   { x: 'Mar', low: 1.9, high: 8.5 },
    { x: 'Apr', low: 3.1,  high: 10.8 },  { x: 'May', low: 5.7,  high: 14.40 }, { x: 'Jun', low: 8.4, high: 16.90 },
    { x: 'Jul', low: 10.6, high: 19.20 }, { x: 'Aug', low: 10.5, high: 18.9 },  { x: 'Sep', low: 8.5, high: 16.1 },
    { x: 'Oct', low: 6.0,  high: 12.5 },  { x: 'Nov', low: 1.5,  high: 6.9  },  { x: 'Dec', low: 5.1, high: 12.1 }
];

export let data1 = [
    { x: 'Jan', low: 1.7, high: 7.1 },  { x: 'Feb', low: 1.9,  high: 7.7 },  { x: 'Mar', low: 1.2, high: 7.5 },
    { x: 'Apr', low: 2.5, high: 9.8 },  { x: 'May', low: 4.7,  high: 11.4 }, { x: 'Jun', low: 6.4, high: 14.4 },
    { x: 'Jul', low: 9.6, high: 17.2 }, { x: 'Aug', low: 10.7, high: 17.9 }, { x: 'Sep', low: 7.5, high: 15.1 },
    { x: 'Oct', low: 3.0, high: 10.5 }, { x: 'Nov', low: 1.2,  high: 7.9 },  { x: 'Dec', low: 4.1, high: 9.1 }
];
export let data: Object[] = [
    { x: 'Jan', low: 0.7,  high: 6.1 },   { x: 'Feb', low: 1.3,  high: 6.3 },   { x: 'Mar', low: 1.9, high: 8.5 },
    { x: 'Apr', low: 3.1,  high: 10.8 },  { x: 'May', low: 5.7,  high: 14.40 }, { x: 'Jun', low: 8.4, high: 16.90 },
    { x: 'Jul', low: 10.6, high: 19.20 }, { x: 'Aug', low: 10.5, high: 18.9 },  { x: 'Sep', low: 8.5, high: 16.1 },
    { x: 'Oct', low: 6.0,  high: 12.5 },  { x: 'Nov', low: 1.5,  high: 6.9  },  { x: 'Dec', low: 5.1, high: 12.1 }
];

export let data1: Object[] = [
    { x: 'Jan', low: 1.7, high: 7.1 },  { x: 'Feb', low: 1.9,  high: 7.7 },  { x: 'Mar', low: 1.2, high: 7.5 },
    { x: 'Apr', low: 2.5, high: 9.8 },  { x: 'May', low: 4.7,  high: 11.4 }, { x: 'Jun', low: 6.4, high: 14.4 },
    { x: 'Jul', low: 9.6, high: 17.2 }, { x: 'Aug', low: 10.7, high: 17.9 }, { x: 'Sep', low: 7.5, high: 15.1 },
    { x: 'Oct', low: 3.0, high: 10.5 }, { x: 'Nov', low: 1.2,  high: 7.9 },  { x: 'Dec', low: 4.1, high: 9.1 }
];

Series customization

The following properties can be used to customize the range column series.

import * as React from "react";
import * as ReactDOM from "react-dom";
import { ChartComponent, SeriesCollectionDirective, SeriesDirective, Inject, Legend, Category, Tooltip, DataLabel, RangeColumnSeries } from '@syncfusion/ej2-react-charts';
import { data, data1 } from './datasource';

function App() {
    const primaryxAxis = { valueType: 'Category', title: 'month' };
    const primaryyAxis = { title: 'Temperature(Celsius)' };
    return <ChartComponent id='charts' primaryXAxis={primaryxAxis} primaryYAxis={primaryyAxis} title='Maximum and minimum Temperature'>
                  <Inject services={[RangeColumnSeries, Legend, Tooltip, DataLabel, Category]}/>
                  <SeriesCollectionDirective>
                      <SeriesDirective dataSource={data} xName='x' low='low' high='high' type='RangeColumn' fill= 'red' border={{width:2, color:'black'}}>
                      </SeriesDirective>
                      <SeriesDirective dataSource={data1} xName='x' low='low' high='high' type='RangeColumn'fill= 'yellow' border={{width:2, color:'black'}}>
                      </SeriesDirective>
                   </SeriesCollectionDirective>
              </ChartComponent>;
}
;
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));
import * as React from "react";
import * as ReactDOM from "react-dom";
import { AxisModel, ChartComponent, SeriesCollectionDirective, SeriesDirective, Inject,
         Legend, Category, Tooltip, DataLabel, Zoom, Crosshair, RangeColumnSeries,  Selection}
from'@syncfusion/ej2-react-charts';
import { data, data1 } from './datasource';

function App() {
    const primaryxAxis: AxisModel= {valueType: 'Category', title: 'month'}  ;
    const primaryyAxis: AxisModel= { title: 'Temperature(Celsius)'}  ;

        return <ChartComponent id='charts'
                primaryXAxis={ primaryxAxis }
                primaryYAxis={ primaryyAxis }
                title='Maximum and minimum Temperature'>
                  <Inject services={[RangeColumnSeries, Legend, Tooltip, DataLabel,  Category]}/>
                  <SeriesCollectionDirective>
                      <SeriesDirective dataSource ={data}  xName='x' low='low' high='high' type='RangeColumn' fill= 'red' border={{width:2, color:'black'}}>
                      </SeriesDirective>
                      <SeriesDirective dataSource ={data1}  xName='x' low='low' high='high' type='RangeColumn' fill= 'yellow' border={{width:2, color:'black'}}>
                      </SeriesDirective>
                   </SeriesCollectionDirective>
              </ChartComponent>
};
export default App;
ReactDOM.render(<App />, document.getElementById("charts"));
export let data = [
    { x: 'Jan', low: 0.7,  high: 6.1 },   { x: 'Feb', low: 1.3,  high: 6.3 },   { x: 'Mar', low: 1.9, high: 8.5 },
    { x: 'Apr', low: 3.1,  high: 10.8 },  { x: 'May', low: 5.7,  high: 14.40 }, { x: 'Jun', low: 8.4, high: 16.90 },
    { x: 'Jul', low: 10.6, high: 19.20 }, { x: 'Aug', low: 10.5, high: 18.9 },  { x: 'Sep', low: 8.5, high: 16.1 },
    { x: 'Oct', low: 6.0,  high: 12.5 },  { x: 'Nov', low: 1.5,  high: 6.9  },  { x: 'Dec', low: 5.1, high: 12.1 }
];

export let data1 = [
    { x: 'Jan', low: 1.7, high: 7.1 },  { x: 'Feb', low: 1.9,  high: 7.7 },  { x: 'Mar', low: 1.2, high: 7.5 },
    { x: 'Apr', low: 2.5, high: 9.8 },  { x: 'May', low: 4.7,  high: 11.4 }, { x: 'Jun', low: 6.4, high: 14.4 },
    { x: 'Jul', low: 9.6, high: 17.2 }, { x: 'Aug', low: 10.7, high: 17.9 }, { x: 'Sep', low: 7.5, high: 15.1 },
    { x: 'Oct', low: 3.0, high: 10.5 }, { x: 'Nov', low: 1.2,  high: 7.9 },  { x: 'Dec', low: 4.1, high: 9.1 }
];
export let data: Object[] = [
    { x: 'Jan', low: 0.7,  high: 6.1 },   { x: 'Feb', low: 1.3,  high: 6.3 },   { x: 'Mar', low: 1.9, high: 8.5 },
    { x: 'Apr', low: 3.1,  high: 10.8 },  { x: 'May', low: 5.7,  high: 14.40 }, { x: 'Jun', low: 8.4, high: 16.90 },
    { x: 'Jul', low: 10.6, high: 19.20 }, { x: 'Aug', low: 10.5, high: 18.9 },  { x: 'Sep', low: 8.5, high: 16.1 },
    { x: 'Oct', low: 6.0,  high: 12.5 },  { x: 'Nov', low: 1.5,  high: 6.9  },  { x: 'Dec', low: 5.1, high: 12.1 }
];

export let data1: Object[] = [
    { x: 'Jan', low: 1.7, high: 7.1 },  { x: 'Feb', low: 1.9,  high: 7.7 },  { x: 'Mar', low: 1.2, high: 7.5 },
    { x: 'Apr', low: 2.5, high: 9.8 },  { x: 'May', low: 4.7,  high: 11.4 }, { x: 'Jun', low: 6.4, high: 14.4 },
    { x: 'Jul', low: 9.6, high: 17.2 }, { x: 'Aug', low: 10.7, high: 17.9 }, { x: 'Sep', low: 7.5, high: 15.1 },
    { x: 'Oct', low: 3.0, high: 10.5 }, { x: 'Nov', low: 1.2,  high: 7.9 },  { x: 'Dec', low: 4.1, high: 9.1 }
];

See Also