Your search did not match any results.
Pie Charts

Pie with Resolved Label Overlapping

Documentation

In the PieChart, series may include a large number of points, which may result in point label overlapping. This demo illustrates the resolveLabelOverlapping property that allows you to specify how the component must behave when point labels overlap.

www.wikipedia.org
Backend API
Copy to CodePen
Apply
Reset
const DemoApp = angular.module('DemoApp', ['dx']); DemoApp.controller('DemoController', ($scope) => { $scope.currentType = types[0]; $scope.chartOptions = { palette: 'bright', dataSource, title: 'Olympic Medals in 2008', margin: { bottom: 20, }, legend: { visible: false, }, animation: { enabled: false, }, export: { enabled: true, }, series: [{ argumentField: 'country', valueField: 'medals', label: { visible: true, customizeText(arg) { return `${arg.argumentText} (${arg.percentText})`; }, }, }], bindingOptions: { resolveLabelOverlapping: 'currentType', }, }; $scope.typesOptions = { dataSource: types, bindingOptions: { value: 'currentType', }, }; });
<!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" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/22.2.6/css/dx.light.css" /> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script> <script>window.angular || document.write(decodeURIComponent('%3Cscript src="js/angular.min.js"%3E%3C/script%3E'))</script> <script src="https://cdn3.devexpress.com/jslib/22.2.6/js/dx.all.js"></script> <script src="data.js"></script> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container" ng-app="DemoApp" ng-controller="DemoController"> <div id="chart-demo"> <div id="pie" dx-pie-chart="chartOptions"></div> <div class="options"> <div class="caption">Options</div> <div class="option"> <span>Label Overlapping Resolution Mode</span> <div id="types" dx-select-box="typesOptions"></div> </div> </div> </div> </div> </body> </html>
.options { padding: 20px; background-color: rgba(191, 191, 191, 0.15); margin-top: 20px; } .option { margin-top: 10px; display: flex; align-items: center; } .caption { font-size: 18px; font-weight: 500; } .option > span { margin-right: 10px; } .option > .dx-widget { display: inline-block; vertical-align: middle; }
const dataSource = [{ country: 'USA', medals: 112, }, { country: 'China', medals: 100, }, { country: 'Russia', medals: 60, }, { country: 'Britain', medals: 49, }, { country: 'Australia', medals: 46, }, { country: 'France', medals: 43, }, { country: 'Germany', medals: 41, }, { country: 'South Korea', medals: 32, }, { country: 'Cuba', medals: 29, }, { country: 'Italy', medals: 27, }, { country: 'Japan', medals: 25, }, { country: 'Ukraine', medals: 22, }, { country: 'Canada', medals: 20, }, { country: 'Spain', medals: 19, }]; const types = ['shift', 'hide', 'none'];