Help us shape the 2021 DevExtreme Roadmap. Take our 5 minute survey.
Your search did not match any results.
Bar Charts

Auto-Calculated Bar Width


This demo illustrates a common issue in multi-series charts. Individual series can skip values for certain arguments or include zero values. In such cases, arguments can display a different number of bars and cause uneven gaps between data.

The ignoreEmptyPoints property allows you to change this behavior. If you set it to true, bars increase their width to fill the gaps. In this demo, you can see how the property affects the following arguments: Iran, Canada, Saudi Arabia, and Mexico.
Copy to CodePen
var DemoApp = angular.module('DemoApp', ['dx']); DemoApp.controller('DemoController', function DemoController($scope) { $scope.chartOptions = { palette: "soft", dataSource: dataSource, commonSeriesSettings: { ignoreEmptyPoints: true, argumentField: "state", type: "bar" }, series: [ { valueField: "oil", name: "Oil Production" }, { valueField: "gas", name: "Gas Production" }, { valueField: "coal", name: "Coal Production" } ], legend: { verticalAlignment: "bottom", horizontalAlignment: "center" }, "export": { enabled: true }, title: "Percent of Total Energy Production" }; });
<!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" /> <script src=""></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="" /> <link rel="stylesheet" type="text/css" href="" /> <script src=""></script> <script>window.angular || document.write(decodeURIComponent('%3Cscript src="js/angular.min.js"%3E%3C/script%3E'))</script> <script src=""></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" dx-chart="chartOptions"></div> </div> </body> </html>
#chart { height: 440px; }
var dataSource = [{ state: "China", oil: 4.95, gas: 2.85, coal: 45.56 }, { state: "Russia", oil: 12.94, gas: 17.66, coal: 4.13 }, { state: "USA", oil: 8.51, gas: 19.87, coal: 15.84 }, { state: "Iran", oil: 5.3, gas: 4.39 }, { state: "Canada", oil: 4.08, gas: 5.4 }, { state: "Saudi Arabia", oil: 12.03 }, { state: "Mexico", oil: 3.86 }];