DevExtreme v26.1 is now available.

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

Your search did not match any results.

Angular Charts - Annotations

Annotations are containers for images, text blocks, and custom content that display additional information about the visualized data.

To create annotations, populate the PolarChart's annotations array. Each object in the array configures an individual annotation. To specify settings for all annotations, use the commonAnnotationSettings object. Individual settings take precedence over common settings.

You can set each annotation's type property to "text", "image", or "custom". This demo shows only "text" annotations.

www.wikipedia.org
Backend API
<dx-polar-chart id="radarChart" [dataSource]="temperaturesData" title="Average temperature in London" > <dxo-polar-chart-common-series-settings type="bar" [opacity]="0.75"> </dxo-polar-chart-common-series-settings> <dxi-polar-chart-series valueField="day" name="Day" color="#fdff5e"> </dxi-polar-chart-series> <dxi-polar-chart-series valueField="night" name="Night" color="#0f3b59"> </dxi-polar-chart-series> <dxo-polar-chart-common-annotation-settings type="text" [opacity]="0.7" [arrowLength]="0" > </dxo-polar-chart-common-annotation-settings> <dxi-polar-chart-annotation text="WINTER" [angle]="45" [radius]="180"> </dxi-polar-chart-annotation> <dxi-polar-chart-annotation text="SPRING" [angle]="135" [radius]="180"> </dxi-polar-chart-annotation> <dxi-polar-chart-annotation text="SUMMER" [angle]="225" [radius]="180"> </dxi-polar-chart-annotation> <dxi-polar-chart-annotation text="FALL" [angle]="315" [radius]="180"> </dxi-polar-chart-annotation> <dxi-polar-chart-annotation [argument]="maxDay.arg" series="Day" text="Highest temperature: {{ maxDay.day }} °C" [opacity]="1" [offsetX]="105" [paddingTopBottom]="15" [paddingLeftRight]="15" > </dxi-polar-chart-annotation> <dxi-polar-chart-annotation [argument]="minNight.arg" series="Night" text="Lowest temperature: {{ minNight.night }} °C" [opacity]="1" [offsetX]="105" [paddingTopBottom]="15" [paddingLeftRight]="15" > </dxi-polar-chart-annotation> <dxo-polar-chart-argument-axis> <dxi-polar-chart-strip startValue="December" endValue="February" color="#0076d1" > </dxi-polar-chart-strip> <dxi-polar-chart-strip startValue="March" endValue="May" color="#3ca3b0"> </dxi-polar-chart-strip> <dxi-polar-chart-strip startValue="June" endValue="August" color="#3fbc1e"> </dxi-polar-chart-strip> <dxi-polar-chart-strip startValue="September" endValue="November" color="#f0bb00" > </dxi-polar-chart-strip> </dxo-polar-chart-argument-axis> <dxo-polar-chart-legend horizontalAlignment="center" verticalAlignment="bottom" > </dxo-polar-chart-legend> </dx-polar-chart>
import { bootstrapApplication } from '@angular/platform-browser'; import { Component, enableProdMode, provideZoneChangeDetection } from '@angular/core'; import { DxPolarChartModule } from 'devextreme-angular'; import { Temperature, Service } from './app.service'; if (!/localhost/.test(document.location.host)) { enableProdMode(); } @Component({ selector: 'demo-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], providers: [Service], imports: [ DxPolarChartModule, ], }) export class AppComponent { temperaturesData: Temperature[]; maxDay: Temperature; minNight: Temperature; constructor(service: Service) { this.temperaturesData = service.getTemperaturesData(); this.maxDay = this.temperaturesData.reduce((prev, current) => (prev.day >= current.day ? prev : current)); this.minNight = this.temperaturesData.reduce((prev, current) => (prev.night <= current.night ? prev : current)); } } bootstrapApplication(AppComponent, { providers: [ provideZoneChangeDetection({ eventCoalescing: true, runCoalescing: true }), ], });
::ng-deep #radarChart { height: 600px; }
import { Injectable } from '@angular/core'; export class Temperature { arg: string; day: number; night: number; } const temperaturesData: Temperature[] = [{ arg: 'December', day: 7, night: 3, }, { arg: 'January', day: 6, night: 2, }, { arg: 'February', day: 7, night: 3, }, { arg: 'March', day: 10, night: 3, }, { arg: 'April', day: 14, night: 5, }, { arg: 'May', day: 18, night: 8, }, { arg: 'June', day: 21, night: 11, }, { arg: 'July', day: 22, night: 13, }, { arg: 'August', day: 21, night: 13, }, { arg: 'September', day: 19, night: 11, }, { arg: 'October', day: 15, night: 8, }, { arg: 'November', day: 10, night: 4, }]; @Injectable() export class Service { getTemperaturesData(): Temperature[] { return temperaturesData; } }
<!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/26.1.5/css/dx.light.css" /> </head> <body class="dx-viewport"> <div class="demo-container"> <demo-app>Loading...</demo-app> </div> <script src="https://cdn.jsdelivr.net/npm/zone.js@0.16.2/bundles/zone.umd.js"></script> <script src="./bundle.js" type="module"></script> </body> </html>

You can place annotations at specific coordinates or anchor them to PolarChart elements. This demo illustrates the following annotation placement methods:

For more information on annotation settings, refer to the annotations[] help topic.