DevExtreme v24.1 is now available.

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

Your search did not match any results.

Step Line

Step line series are much like traditional line series. The primary difference is that in step line series, data points are connected by vertical and horizontal lines --- resulting in a «stair step» effect.

www.wikipedia.org
Backend API
import React from 'react'; import { Chart, Series, ArgumentAxis, CommonSeriesSettings, Export, Legend, Point, Label, Format, } from 'devextreme-react/chart'; import { medalSources, olympicAchievements } from './data.ts'; function App() { return ( <Chart id="container" dataSource={olympicAchievements} title="Australian Olympic Medal Count" > <CommonSeriesSettings type="stepline" argumentField="year" > <Point visible={false} /> </CommonSeriesSettings> { medalSources.map((item) => <Series key={item.value} valueField={item.value} name={item.name} color={item.color} />) } <ArgumentAxis> <Label> <Format type="decimal" /> </Label> </ArgumentAxis> <Legend verticalAlignment="bottom" horizontalAlignment="center" /> <Export enabled={true} /> </Chart> ); } export default App;
import React from 'react'; import { Chart, Series, ArgumentAxis, CommonSeriesSettings, Export, Legend, Point, Label, Format, } from 'devextreme-react/chart'; import { medalSources, olympicAchievements } from './data.js'; function App() { return ( <Chart id="container" dataSource={olympicAchievements} title="Australian Olympic Medal Count" > <CommonSeriesSettings type="stepline" argumentField="year" > <Point visible={false} /> </CommonSeriesSettings> {medalSources.map((item) => ( <Series key={item.value} valueField={item.value} name={item.name} color={item.color} /> ))} <ArgumentAxis> <Label> <Format type="decimal" /> </Label> </ArgumentAxis> <Legend verticalAlignment="bottom" horizontalAlignment="center" /> <Export enabled={true} /> </Chart> ); } export default App;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.tsx'; ReactDOM.render( <App />, document.getElementById('app'), );
export const medalSources = [ { value: 'bronze', name: 'Bronze Medals', color: '#cd7f32' }, { value: 'silver', name: 'Silver Medals', color: '#c0c0c0' }, { value: 'gold', name: 'Gold Medals', color: '#ffd700' }, ]; export const olympicAchievements = [{ year: 1896, gold: 2, silver: 0, bronze: 0, }, { year: 1900, gold: 2, silver: 0, bronze: 3, }, { year: 1904, gold: 0, silver: 0, bronze: 0, }, { year: 1908, gold: 1, silver: 2, bronze: 2, }, { year: 1912, gold: 2, silver: 2, bronze: 3, }, { year: 1916, gold: 0, silver: 0, bronze: 0, }, { year: 1920, gold: 0, silver: 2, bronze: 1, }, { year: 1924, gold: 3, silver: 1, bronze: 2, }, { year: 1928, gold: 1, silver: 2, bronze: 1, }, { year: 1932, gold: 3, silver: 1, bronze: 1, }, { year: 1936, gold: 0, silver: 0, bronze: 1, }, { year: 1940, gold: 0, silver: 0, bronze: 0, }, { year: 1944, gold: 0, silver: 0, bronze: 0, }, { year: 1948, gold: 2, silver: 6, bronze: 5, }, { year: 1952, gold: 6, silver: 2, bronze: 3, }, { year: 1956, gold: 13, silver: 8, bronze: 14, }, { year: 1960, gold: 8, silver: 8, bronze: 6, }, { year: 1964, gold: 6, silver: 2, bronze: 10, }, { year: 1968, gold: 5, silver: 7, bronze: 5, }, { year: 1972, gold: 8, silver: 7, bronze: 2, }, { year: 1976, gold: 0, silver: 1, bronze: 4, }, { year: 1980, gold: 2, silver: 2, bronze: 5, }, { year: 1984, gold: 4, silver: 8, bronze: 12, }, { year: 1988, gold: 3, silver: 6, bronze: 5, }, { year: 1992, gold: 7, silver: 9, bronze: 11, }, { year: 1996, gold: 9, silver: 9, bronze: 23, }, { year: 2000, gold: 16, silver: 25, bronze: 17, }, { year: 2004, gold: 17, silver: 16, bronze: 16, }, { year: 2008, gold: 14, silver: 15, bronze: 17, }, { year: 2012, gold: 8, silver: 15, bronze: 12, }, { year: 2016, gold: 8, silver: 11, bronze: 10, }];
window.exports = window.exports || {}; window.config = { transpiler: 'ts', typescriptOptions: { module: 'system', emitDecoratorMetadata: true, experimentalDecorators: true, jsx: 'react', }, meta: { 'react': { 'esModule': true, }, 'typescript': { 'exports': 'ts', }, 'devextreme/time_zone_utils.js': { 'esModule': true, }, 'devextreme/localization.js': { 'esModule': true, }, 'devextreme/viz/palette.js': { 'esModule': true, }, }, paths: { 'npm:': 'https://unpkg.com/', }, defaultExtension: 'js', map: { 'ts': 'npm:plugin-typescript@4.2.4/lib/plugin.js', 'typescript': 'npm:typescript@4.2.4/lib/typescript.js', '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@24.1.4/cjs', 'devextreme-react': 'npm:devextreme-react@24.1.4/cjs', 'jszip': 'npm:jszip@3.10.1/dist/jszip.min.js', 'devextreme-quill': 'npm:devextreme-quill@1.7.1/dist/dx-quill.min.js', 'devexpress-diagram': 'npm:devexpress-diagram@2.2.10/dist/dx-diagram.js', 'devexpress-gantt': 'npm:devexpress-gantt@4.1.56/dist/dx-gantt.js', '@devextreme/runtime': 'npm:@devextreme/runtime@3.0.13', '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', 'devextreme-cldr-data': 'npm:devextreme-cldr-data@1.0.3', // 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.8/standalone.js', 'prettier/parser-html': 'npm:prettier@2.8.8/parser-html.js', }, packages: { 'devextreme': { defaultExtension: 'js', }, 'devextreme-react': { main: 'index.js', }, 'devextreme/events/utils': { main: 'index', }, 'devextreme/localization/messages': { format: 'json', defaultExtension: 'json', }, 'devextreme/events': { main: 'index', }, 'es6-object-assign': { main: './index.js', defaultExtension: 'js', }, }, packageConfigPaths: [ 'npm:@devextreme/*/package.json', 'npm:@devextreme/runtime@3.0.13/inferno/package.json', ], babelOptions: { sourceMaps: false, stage0: true, react: true, }, }; System.config(window.config);
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.js'; ReactDOM.render(<App />, document.getElementById('app'));
export const medalSources = [ { value: 'bronze', name: 'Bronze Medals', color: '#cd7f32' }, { value: 'silver', name: 'Silver Medals', color: '#c0c0c0' }, { value: 'gold', name: 'Gold Medals', color: '#ffd700' }, ]; export const olympicAchievements = [ { year: 1896, gold: 2, silver: 0, bronze: 0, }, { year: 1900, gold: 2, silver: 0, bronze: 3, }, { year: 1904, gold: 0, silver: 0, bronze: 0, }, { year: 1908, gold: 1, silver: 2, bronze: 2, }, { year: 1912, gold: 2, silver: 2, bronze: 3, }, { year: 1916, gold: 0, silver: 0, bronze: 0, }, { year: 1920, gold: 0, silver: 2, bronze: 1, }, { year: 1924, gold: 3, silver: 1, bronze: 2, }, { year: 1928, gold: 1, silver: 2, bronze: 1, }, { year: 1932, gold: 3, silver: 1, bronze: 1, }, { year: 1936, gold: 0, silver: 0, bronze: 1, }, { year: 1940, gold: 0, silver: 0, bronze: 0, }, { year: 1944, gold: 0, silver: 0, bronze: 0, }, { year: 1948, gold: 2, silver: 6, bronze: 5, }, { year: 1952, gold: 6, silver: 2, bronze: 3, }, { year: 1956, gold: 13, silver: 8, bronze: 14, }, { year: 1960, gold: 8, silver: 8, bronze: 6, }, { year: 1964, gold: 6, silver: 2, bronze: 10, }, { year: 1968, gold: 5, silver: 7, bronze: 5, }, { year: 1972, gold: 8, silver: 7, bronze: 2, }, { year: 1976, gold: 0, silver: 1, bronze: 4, }, { year: 1980, gold: 2, silver: 2, bronze: 5, }, { year: 1984, gold: 4, silver: 8, bronze: 12, }, { year: 1988, gold: 3, silver: 6, bronze: 5, }, { year: 1992, gold: 7, silver: 9, bronze: 11, }, { year: 1996, gold: 9, silver: 9, bronze: 23, }, { year: 2000, gold: 16, silver: 25, bronze: 17, }, { year: 2004, gold: 17, silver: 16, bronze: 16, }, { year: 2008, gold: 14, silver: 15, bronze: 17, }, { year: 2012, gold: 8, silver: 15, bronze: 12, }, { year: 2016, gold: 8, silver: 11, bronze: 10, }, ];
<!DOCTYPE html> <html lang="en"> <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=5.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/24.1.4/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.tsx"); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"></div> </div> </body> </html>
#container { height: 440px; }