Your search did not match any results.
Area Charts

Spline Area


Spline area series, like area series, are used to clearly emphasize change in values. However, spline area series help «smooth» individual lines that connect data points. In this example, you can switch between the spline area, stacked spline area and full-stacked spline area series types. Stacked spline area series help visualize multiple series and compare the manner in which each series contributes to the total aggregate value for specific arguments. Full-stacked spline area series help compare the percentage value of multiple spline area series for each argument.
Copy to CodeSandBox
<div id="chart-demo"> <dx-chart title="Corporations with Highest Market Value" palette="Harmony Light" [dataSource]="corporationsInfo"> <dxi-series valueField="y2005" name="2005"></dxi-series> <dxi-series valueField="y2004" name="2004"></dxi-series> <dxo-common-series-settings #commonSeries argumentField="company" [type]="types[0]"></dxo-common-series-settings> <dxo-margin [bottom]="20"></dxo-margin> <dxo-argument-axis [valueMarginsEnabled]="false"></dxo-argument-axis> <dxo-export [enabled]="true"></dxo-export> <dxo-legend verticalAlignment="bottom" horizontalAlignment="center"> </dxo-legend> </dx-chart> <div class="options"> <div class="caption">Options</div> <div class="option"> <span>Series Type</span> <dx-select-box [dataSource]="types" [(value)]="commonSeries.type"> </dx-select-box> </div> </div> </div>
import { NgModule, Component, enableProdMode } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { DxChartModule, DxSelectBoxModule } from 'devextreme-angular'; import { СorporationInfo, Service } from './app.service'; if(!/localhost/.test( { enableProdMode(); } @Component({ selector: 'demo-app', templateUrl: 'app/app.component.html', styleUrls: ['app/app.component.css'], providers: [Service], preserveWhitespaces: true }) export class AppComponent { corporationsInfo: СorporationInfo[]; types: string[] = ["splinearea", "stackedsplinearea", "fullstackedsplinearea"]; constructor(service: Service) { this.corporationsInfo = service.getCorporationsInfo(); } } @NgModule({ imports: [ BrowserModule, DxChartModule, DxSelectBoxModule ], declarations: [AppComponent], bootstrap: [AppComponent] }) export class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
::ng-deep .options { padding: 20px; background-color: rgba(191, 191, 191, 0.15); margin-top: 20px; } ::ng-deep .option { margin-top: 10px; } ::ng-deep .caption { font-size: 18px; font-weight: 500; } ::ng-deep .option > span { margin-right: 10px; } ::ng-deep .option > .dx-widget { display: inline-block; vertical-align: middle; }
import { Injectable } from '@angular/core'; export class СorporationInfo { company: string; y2005: number; y2004: number; } let corporationsInfo: СorporationInfo[] = [{ company: "ExxonMobil", y2005: 362.53, y2004: 277.02 }, { company: "GeneralElectric", y2005: 348.45, y2004: 328.54 }, { company: "Microsoft", y2005: 279.02, y2004: 297.02 }, { company: "Citigroup", y2005: 230.93, y2004: 255.3 }, { company: "Royal Dutch Shell plc", y2005: 203.52, y2004: 173.54 }, { company: "Procted & Gamble", y2005: 197.12, y2004: 131.89 }]; @Injectable() export class Service { getCorporationsInfo(): СorporationInfo[] { return corporationsInfo; } }
// In real applications, you should not transpile code in the browser. You can see how to create your own application with Angular and DevExtreme here: // System.config({ transpiler: 'ts', typescriptOptions: { module: "system", emitDecoratorMetadata: true, experimentalDecorators: true }, meta: { 'typescript': { "exports": "ts" }, 'devextreme/localization.js': { "esModule": true } }, paths: { 'npm:': '' }, map: { 'ts': 'npm:plugin-typescript@8.0.0/lib/plugin.js', 'typescript': 'npm:typescript@3.5.3/lib/typescript.js', '@angular': 'npm:@angular', 'tslib': 'npm:tslib@2.2.0/tslib.js', 'rxjs': 'npm:rxjs@6.4.0', 'rrule': 'npm:rrule@2.6.6/dist/es5/rrule.js', 'luxon': 'npm:luxon@1.26.0/build/global/luxon.min.js', 'es6-object-assign': 'npm:es6-object-assign@1.1.0', 'devextreme': 'npm:devextreme@20.2.7', 'jszip': 'npm:jszip@3.6.0/dist/jszip.min.js', 'devextreme-quill': 'npm:devextreme-quill@0.10.3/dist/dx-quill.min.js', 'devexpress-diagram': 'npm:devexpress-diagram@2.0.23', 'devexpress-gantt': 'npm:devexpress-gantt@2.0.29', 'devextreme-angular': 'npm:devextreme-angular@20.2.6', 'preact': 'npm:preact@10.5.13/dist/preact.js', 'preact/hooks': 'npm:preact@10.5.13/hooks/dist/hooks.js' }, packages: { 'app': { main: './app.component.ts', defaultExtension: 'ts' }, 'devextreme': { defaultExtension: 'js' }, 'devextreme/events/utils': { main: 'index' }, 'devextreme/events': { main: 'index' }, 'es6-object-assign': { main: './index.js', defaultExtension: 'js' } }, packageConfigPaths: [ "npm:@angular/*/package.json", "npm:@angular/common/*/package.json", "npm:rxjs/package.json", "npm:rxjs/operators/package.json", "npm:devextreme-angular/*/package.json", "npm:devextreme-angular/ui/*/package.json", "npm:devextreme-angular/package.json", "npm:devexpress-diagram/package.json", "npm:devexpress-gantt/package.json", ] });
<!DOCTYPE html> <html xmlns=""> <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="stylesheet" type="text/css" href="" /> <link rel="stylesheet" type="text/css" href="" /> <script src=""></script> <script src=""></script> <script src=""></script> <script src=""></script> <script src="config.js"></script> <script> System.import('app').catch(console.error.bind(console)); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <demo-app>Loading...</demo-app> </div> </body> </html>