DevExtreme v23.1 is now available.

Explore our newest features/capabilities and share your thoughts with us.

Your search did not match any results.
Range Selector

Chart on Background with Series Template

Documentation

This demo demonstrates the ability of the RangeSelector to display the Chart component with series defined using a series template.

Backend API
Copy to CodeSandBox
Apply
Reset
import React from 'react'; import RangeSelector, { Margin, Chart, CommonSeriesSettings, SeriesTemplate, Scale, Label, Format, } from 'devextreme-react/range-selector'; import { dataSource } from './data.js'; function App() { return ( <RangeSelector id="range-selector" title="Select a Year Period" dataSource={dataSource} > <Margin top={50} /> <Chart> <CommonSeriesSettings argumentField="year" valueField="oil" type="spline" /> <SeriesTemplate customizeSeries={customizeSeries} nameField="country" /> </Chart> <Scale> <Label> <Format type="decimal" /> </Label> </Scale> </RangeSelector> ); } function customizeSeries(valueFromNameField) { return valueFromNameField === 'USA' ? { color: 'red', } : {}; } export default App;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.js'; ReactDOM.render( <App />, document.getElementById('app'), );
<!DOCTYPE html> <html> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="dx-theme" data-theme="generic.light" href="https://cdn3.devexpress.com/jslib/23.1.5/css/dx.light.css" /> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="https://unpkg.com/core-js@2.6.12/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import("./index.js"); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"></div> </div> </body> </html>
#range-selector { height: 310px; }
export const dataSource = [ { year: 1970, country: 'Saudi Arabia', oil: 186.7 }, { year: 1980, country: 'Saudi Arabia', oil: 480.4 }, { year: 1990, country: 'Saudi Arabia', oil: 319.6 }, { year: 2000, country: 'Saudi Arabia', oil: 465 }, { year: 2008, country: 'Saudi Arabia', oil: 549.7 }, { year: 2009, country: 'Saudi Arabia', oil: 428.4 }, { year: 1970, country: 'USA', oil: 557.8 }, { year: 1980, country: 'USA', oil: 423.2 }, { year: 1990, country: 'USA', oil: 340.1 }, { year: 2000, country: 'USA', oil: 282.9 }, { year: 2008, country: 'USA', oil: 280 }, { year: 2009, country: 'USA', oil: 298.9 }, { year: 1970, country: 'Mexico', oil: 24.7 }, { year: 1980, country: 'Mexico', oil: 109.2 }, { year: 1990, country: 'Mexico', oil: 145.3 }, { year: 2000, country: 'Mexico', oil: 148.3 }, { year: 2008, country: 'Mexico', oil: 132.1 }, { year: 2009, country: 'Mexico', oil: 121.6 }, ];
window.config = { transpiler: 'plugin-babel', meta: { 'devextreme/localization.js': { 'esModule': true, }, }, paths: { 'npm:': 'https://unpkg.com/', }, defaultExtension: 'js', map: { 'react': 'npm:react@17.0.2/umd/react.development.js', 'react-dom': 'npm:react-dom@17.0.2/umd/react-dom.development.js', 'prop-types': 'npm:prop-types@15.8.1/prop-types.js', 'rrule': 'npm:rrule@2.6.4/dist/es5/rrule.js', 'luxon': 'npm:luxon@1.28.1/build/global/luxon.min.js', 'es6-object-assign': 'npm:es6-object-assign@1.1.0', 'devextreme': 'npm:devextreme@23.1.5/cjs', 'devextreme-react': 'npm:devextreme-react@23.1.5', 'jszip': 'npm:jszip@3.7.1/dist/jszip.min.js', 'devextreme-quill': 'npm:devextreme-quill@1.6.2/dist/dx-quill.min.js', 'devexpress-diagram': 'npm:devexpress-diagram@2.2.1/dist/dx-diagram.js', 'devexpress-gantt': 'npm:devexpress-gantt@4.1.48/dist/dx-gantt.js', '@devextreme/runtime': 'npm:@devextreme/runtime@3.0.11', 'inferno': 'npm:inferno@7.4.11/dist/inferno.min.js', 'inferno-compat': 'npm:inferno-compat/dist/inferno-compat.min.js', 'inferno-create-element': 'npm:inferno-create-element@7.4.11/dist/inferno-create-element.min.js', 'inferno-dom': 'npm:inferno-dom/dist/inferno-dom.min.js', 'inferno-hydrate': 'npm:inferno-hydrate@7.4.11/dist/inferno-hydrate.min.js', 'inferno-clone-vnode': 'npm:inferno-clone-vnode/dist/inferno-clone-vnode.min.js', 'inferno-create-class': 'npm:inferno-create-class/dist/inferno-create-class.min.js', 'inferno-extras': 'npm:inferno-extras/dist/inferno-extras.min.js', // SystemJS plugins 'plugin-babel': 'npm:systemjs-plugin-babel@0.0.25/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0.0.25/systemjs-babel-browser.js', // Prettier 'prettier/standalone': 'npm:prettier@2.8.4/standalone.js', 'prettier/parser-html': 'npm:prettier@2.8.4/parser-html.js', }, packages: { 'devextreme': { defaultExtension: 'js', }, 'devextreme-react': { main: 'index.js', }, 'devextreme/events/utils': { main: 'index', }, 'devextreme/events': { main: 'index', }, 'es6-object-assign': { main: './index.js', defaultExtension: 'js', }, }, packageConfigPaths: [ 'npm:@devextreme/*/package.json', 'npm:@devextreme/runtime@3.0.11/inferno/package.json', ], babelOptions: { sourceMaps: false, stage0: true, react: true, }, }; System.config(window.config);