DevExtreme v24.1 is now available.

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

Your search did not match any results.

JavaScript/jQuery Charts - Pies with Equal Sizes

To display multiple PieChart components that share series and legend settings, you can declare an object with options and use this object in every PieChart.

When you display PieChart components side by side, their pies may differ in size. You can join all charts into a size group to resize these pies to match each other. To do so, set the sizeGroup property of every chart to the same value.

Backend API
$(() => { const legendSettings = { verticalAlignment: 'bottom', horizontalAlignment: 'center', itemTextPosition: 'right', rowCount: 2, }; const seriesOptions = [{ argumentField: 'name', valueField: 'area', label: { visible: true, format: 'percent', }, }]; const sizeGroupName = 'piesGroup'; $('#countries').dxPieChart({ dataSource: countries, sizeGroup: sizeGroupName, palette: 'Soft', title: 'Area of Countries', legend: legendSettings, series: seriesOptions, }); $('#waterLandRatio').dxPieChart({ sizeGroup: sizeGroupName, palette: 'Soft Pastel', title: 'Water/Land Ratio', legend: legendSettings, dataSource: waterLandRatio, series: seriesOptions, }); });
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" 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" /> <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/24.1.7/css/dx.light.css" /> <script src="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"> <div class="pies-container"> <div id="countries"></div> <div id="waterLandRatio"></div> </div> </div> </body> </html>
.pies-container { margin: auto; width: 800px; } .pies-container > div { width: 400px; float: left; }
const waterLandRatio = [{ name: 'Land', area: 0.29, }, { name: 'Water', area: 0.71, }]; const countries = [{ name: 'Russia', area: 0.12, }, { name: 'Canada', area: 0.07, }, { name: 'USA', area: 0.07, }, { name: 'China', area: 0.07, }, { name: 'Brazil', area: 0.06, }, { name: 'Australia', area: 0.05, }, { name: 'India', area: 0.02, }, { name: 'Others', area: 0.55, }];