Your search did not match any results.
Line Charts

Resolved Axis Label Overlapping

Documentation

In this demo, argument axis labels overlap due to their length. You can decide how to resolve the overlapping by choosing one of the overlapping behavior modes.

Copy to CodeSandBox
Apply
Reset
<dx-chart id="chart" [dataSource]="population" title="Population by Countries"> <dxi-series argumentField="country"></dxi-series> <dxo-argument-axis> <dxo-label wordWrap="none" [overlappingBehavior]="currentMode"></dxo-label> </dxo-argument-axis> <dxo-legend [visible]="false"></dxo-legend> </dx-chart> <div class="options"> <div class="caption">Options</div> <div class="option"> <span>Overlapping Modes:</span> <dx-select-box [dataSource]="overlappingModes" [(value)]="currentMode"> </dx-select-box> </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 { Service, PopulationData } from './app.service'; if(!/localhost/.test(document.location.host)) { enableProdMode(); } @Component({ selector: 'demo-app', providers: [Service], templateUrl: 'app/app.component.html', styleUrls: ['app/app.component.css'], preserveWhitespaces: true }) export class AppComponent { population: PopulationData[]; currentMode: string; overlappingModes: string[]; constructor(service: Service) { this.population = service.getPopulation(); this.currentMode = service.getOverlappingModes()[0]; this.overlappingModes = service.getOverlappingModes(); } } @NgModule({ imports: [ BrowserModule, DxChartModule, DxSelectBoxModule ], declarations: [AppComponent], bootstrap: [AppComponent] }) export class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
#chart { height: 330px; } .options { padding: 20px; margin-top: 20px; background-color: rgba(191, 191, 191, 0.15); } .caption { font-weight: 500; font-size: 18px; } .option { margin-top: 10px; } .option > span { position: relative; top: 2px; margin-right: 10px; } .option > .dx-widget { display: inline-block; vertical-align: middle; }
import { Injectable } from '@angular/core'; export class PopulationData { country: string; val: number; } let population: PopulationData[] = [ { country: "China", val: 1382500000 }, { country: "India", val: 1314300000 }, { country: "United States", val: 324789000 }, { country: "Indonesia", val: 261600000 }, { country: "Brazil", val: 207332000 }, { country: "Pakistan", val: 196865000 }, { country: "Nigeria", val: 188500000 }, { country: "Bangladesh", val: 162240000 }, { country: "Russia", val: 146400000 }, { country: "Japan", val: 126760000 }, { country: "Mexico", val: 122273000 }, { country: "Ethiopia", val: 104345000 }, { country: "Philippines", val: 103906000 }, { country: "Egypt", val: 92847800 } ]; let overlappingModes = ["stagger", "rotate", "hide", "none"]; @Injectable() export class Service { getPopulation(): PopulationData[] { return population; } getOverlappingModes(): string[] { return overlappingModes; } }
// 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: // https://github.com/DevExpress/devextreme-angular/blob/master/README.md System.config({ transpiler: 'ts', typescriptOptions: { module: "commonjs", emitDecoratorMetadata: true, experimentalDecorators: true }, meta: { 'typescript': { "exports": "ts" } }, paths: { 'npm:': 'https://unpkg.com/' }, map: { 'ts': 'npm:plugin-typescript@8.0.0/lib/plugin.js', 'typescript': 'npm:typescript@3.4.5/lib/typescript.js', '@angular/core': 'npm:@angular/core@8.0.0/bundles/core.umd.js', '@angular/common': 'npm:@angular/common@8.0.0/bundles/common.umd.js', '@angular/compiler': 'npm:@angular/compiler@8.0.0/bundles/compiler.umd.js', '@angular/platform-browser': 'npm:@angular/platform-browser@8.0.0/bundles/platform-browser.umd.js', '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic@8.0.0/bundles/platform-browser-dynamic.umd.js', '@angular/router': 'npm:@angular/router@8.0.0/bundles/router.umd.js', '@angular/forms': 'npm:@angular/forms@8.0.0/bundles/forms.umd.js', '@angular/common/http': 'npm:@angular/common@8.0.0/bundles/common-http.umd.js', 'tslib': 'npm:tslib/tslib.js', 'rxjs': 'npm:rxjs@6.3.3', 'rxjs/operators': 'npm:rxjs@6.3.3/operators', 'jszip': 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.6/dist/quill.js', 'devexpress-diagram': 'npm:devexpress-diagram', 'devextreme': 'npm:devextreme@19.1', 'jquery': 'npm:jquery@3.4.1/dist/jquery.min.js', 'devextreme-angular': 'npm:devextreme-angular@19.1' }, packages: { 'app': { main: './app.component.ts', defaultExtension: 'ts' }, 'devextreme': { defaultExtension: 'js' }, 'rxjs': { main: 'index.js', defaultExtension: 'js' }, 'rxjs/operators': { main: 'index.js', defaultExtension: 'js' }, 'devextreme-angular': { main: 'index.js', defaultExtension: 'js' } } });
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <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="https://cdn3.devexpress.com/jslib/19.1.6/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.1.6/css/dx.light.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/zone.js@0.6.25/dist/zone.js"></script> <script src="https://unpkg.com/reflect-metadata@0.1.3/Reflect.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></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>