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

Wind Rose

Documentation

This demo illustrates a wind rose using the PolarChart UI component. To specify chart arguments that correspond to cardinal points, the discreteAxisDivisionMode and firstPointOnStartAngle properties of the argumentAxis object are set. In addition, the chart’s onLegendClick event is handled for you to be able to exclude/include certain series to the PolarChart at runtime.

www.wrcc.dri.edu
Copy to CodePen
Apply
Reset
var DemoApp = angular.module('DemoApp', ['dx']); DemoApp.controller('DemoController', function DemoController($scope) { $scope.dataSourceValue = dataSource[0].values; $scope.polarChartOptions = { palette: "soft", title: "Wind Rose, Philadelphia PA", commonSeriesSettings: { type: "stackedbar" }, margin: { bottom: 50, left: 100 }, onLegendClick: function(e){ var series = e.target; if (series.isVisible()) { series.hide(); } else { series.show(); } }, argumentAxis: { discreteAxisDivisionMode: "crossLabels", firstPointOnStartAngle: true }, valueAxis: { valueMarginsEnabled: false }, "export": { enabled: true }, series: [{ valueField: "val1", name: "1.3-4 m/s" }, { valueField: "val2", name: "4-8 m/s" }, { valueField: "val3", name: "8-13 m/s" }, { valueField: "val4", name: "13-19 m/s" }, { valueField: "val5", name: "19-25 m/s" }, { valueField: "val6", name: "25-32 m/s" }, { valueField: "val7", name: "32-39 m/s" }, { valueField: "val8", name: "39-47 m/s" } ], bindingOptions: { dataSource: "dataSourceValue" } }; $scope.selectBoxOptions = { width: 300, dataSource: dataSource, displayExpr: "period", valueExpr: "values", bindingOptions: { value: "dataSourceValue" } }; });
<!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/20.2.5/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/20.2.5/css/dx.light.css" /> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/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/20.2.5/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="radarChart" dx-polar-chart="polarChartOptions"></div> <div class="center"> <div dx-select-box="selectBoxOptions"></div> </div> </div> </div> </body> </html>
#chart-demo { height: 600px; } #radarChart { height: 500px; } #chart-demo > .center { text-align: center; } #chart-demo > .center > .dx-widget { display: inline-block; vertical-align: middle; }
var dataSource = [{ period: "Sep. 1, 2012 - Oct. 1, 2012", values: [{ arg: "N", val1: 0.7, val2: 1.7, val3: 1.8, val4: 0.8, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "NNE", val1: 0.1, val2: 0.6, val3: 0.1, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "NE", val1: 0.3, val2: 0.8, val3: 0.1, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "ENE", val1: 0.3, val2: 0.7, val3: 0.1, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "E", val1: 0.7, val2: 3.2, val3: 2.5, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "ESE", val1: 0.8, val2: 1.5, val3: 0.3, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "SE", val1: 0.3, val2: 1.3, val3: 0.4, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "SSE", val1: 0.1, val2: 2.4, val3: 0.3, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "S", val1: 1.1, val2: 4.2, val3: 2.2, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "SSW", val1: 0.6, val2: 3.6, val3: 3.5, val4: 0.4, val5: 0.1, val6: 0, val7: 0, val8: 0 }, { arg: "SW", val1: 0.8, val2: 2.5, val3: 5, val4: 1.3, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "WSW", val1: 0.3, val2: 2.6, val3: 3.2, val4: 0.4, val5: 0, val6: 0, val7: 0.1, val8: 0 }, { arg: "W", val1: 0.6, val2: 1.7, val3: 2.6, val4: 0.3, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "WNW", val1: 0.7, val2: 2.5, val3: 3.1, val4: 0.3, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "NW", val1: 1, val2: 3.2, val3: 2.6, val4: 0.8, val5: 0.1, val6: 0, val7: 0, val8: 0 }, { arg: "NNW", val1: 0.6, val2: 3.8, val3: 4.3, val4: 2.2, val5: 0, val6: 0, val7: 0, val8: 0 }] }, { period: "Oct. 1, 2012 - Nov. 1, 2012", values: [{ arg: "N", val1: 0.6, val2: 1.8, val3: 1.9, val4: 0.6, val5: 0.1, val6: 1, val7: 0.4, val8: 0 }, { arg: "NNE", val1: 0.3, val2: 1.2, val3: 1.5, val4: 0.4, val5: 0.6, val6: 0.3, val7: 0, val8: 0.1 }, { arg: "NE", val1: 0.3, val2: 2.4, val3: 2.2, val4: 1, val5: 0.6, val6: 0, val7: 0, val8: 0 }, { arg: "ENE", val1: 1, val2: 2.2, val3: 1.2, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "E", val1: 0.6, val2: 4.9, val3: 1.8, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0.1 }, { arg: "ESE", val1: 0.1, val2: 0.6, val3: 0.4, val4: 0.1, val5: 0, val6: 0.1, val7: 0, val8: 0 }, { arg: "SE", val1: 0.1, val2: 0.3, val3: 1.2, val4: 0.6, val5: 0, val6: 0.1, val7: 0, val8: 0 }, { arg: "SSE", val1: 0.4, val2: 0.7, val3: 1.3, val4: 0.3, val5: 0, val6: 0.1, val7: 0, val8: 0 }, { arg: "S", val1: 0, val2: 3.1, val3: 3.1, val4: 0.7, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "SSW", val1: 0.6, val2: 1.8, val3: 4, val4: 1.2, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "SW", val1: 0.7, val2: 1.8, val3: 2.1, val4: 1, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "WSW", val1: 0.3, val2: 2.5, val3: 4.8, val4: 1.2, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "W", val1: 0, val2: 2.8, val3: 5.8, val4: 1.5, val5: 0.1, val6: 0, val7: 0, val8: 0 }, { arg: "WNW", val1: 0.3, val2: 1.5, val3: 3.9, val4: 1.3, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "NW", val1: 0.1, val2: 2.7, val3: 1.8, val4: 1, val5: 0.1, val6: 0, val7: 0, val8: 0 }, { arg: "NNW", val1: 0.3, val2: 1.5, val3: 0.6, val4: 1, val5: 0.1, val6: 0, val7: 0, val8: 0 }] }, { period: "Nov. 1, 2012 - Deс. 1, 2012", values: [{ arg: "N", val1: 0.7, val2: 3, val3: 7.4, val4: 2.3, val5: 0.1, val6: 0, val7: 0, val8: 0 }, { arg: "NNE", val1: 0.4, val2: 1.6, val3: 2.3, val4: 1, val5: 0.1, val6: 0, val7: 0, val8: 0 }, { arg: "NE", val1: 0.5, val2: 3.4, val3: 7.8, val4: 1.8, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "ENE", val1: 0.3, val2: 4.1, val3: 1.6, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "E", val1: 1.2, val2: 1.8, val3: 0.4, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "ESE", val1: 0.7, val2: 0.3, val3: 0, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "SE", val1: 0.1, val2: 0.3, val3: 0, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "SSE", val1: 0.3, val2: 0.4, val3: 0.7, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "S", val1: 0.4, val2: 0.8, val3: 1.2, val4: 0.4, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "SSW", val1: 0.4, val2: 1.5, val3: 0.1, val4: 0.1, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "SW", val1: 0.8, val2: 0.1, val3: 1.2, val4: 0, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "WSW", val1: 0, val2: 1.5, val3: 2.2, val4: 0.7, val5: 0, val6: 0, val7: 0, val8: 0 }, { arg: "W", val1: 0.3, val2: 1, val3: 6.3, val4: 2.7, val5: 0.4, val6: 0, val7: 0, val8: 0 }, { arg: "WNW", val1: 0.3, val2: 1.2, val3: 2.7, val4: 1.6, val5: 0.8, val6: 0, val7: 0, val8: 0 }, { arg: "NW", val1: 0.3, val2: 0.7, val3: 4.8, val4: 2, val5: 0.3, val6: 0.1, val7: 0, val8: 0 }, { arg: "NNW", val1: 0.1, val2: 2.5, val3: 2.2, val4: 2.3, val5: 0.7, val6: 0.1, val7: 0, val8: 0 }] } ];