CodePen
Sandbox Download

The historical monthly hurricane count by subbasin within the United States.

What is a radar chart?

Radar charts plot a single continuous field around the circumference in ascending order, connecting values the same way a line chart connects points along its x-axis, just wrapped into a circle — useful for cyclical or sequential data like year-over-year trends.

Data configurations

This section covers a few data configuration examples for radar charts, each configured using the radar chart model. See the radar chart model reference for the full list of available properties and methods.

With circular axis field

Radar charts with a number field (integer, double, etc.) on the circular axis plots points in ascending numeric order around the axis.

CodePen
Sandbox Download
This chart visualizes the historical hurricane counts by year.
  1. Set the circularAxisField property to "year" to specify the numeric field.
With circular axis field
30 collapsed lines
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>Radar Chart</title>
<style>
html,
body,
arcgis-chart {
height: 100%;
margin: 0;
}
</style>
<!-- Load the ArcGIS Maps SDK for JavaScript from CDN -->
<script type="module" src="https://js.arcgis.com/5.2/"></script>
</head>
<body>
<arcgis-chart></arcgis-chart>
<script type="module">
const { createModel } = await $arcgis.import("@arcgis/charts-components/model/shared/setup-utils.js");
const FeatureLayer = await $arcgis.import("@arcgis/core/layers/FeatureLayer.js");
const featureLayer = new FeatureLayer({
portalItem: {
id: "0cc8050831a145289408f6dac8d4ad7b",
},
});
const chartElement = document.querySelector("arcgis-chart");
const radarChartModel = await createModel({ layer: featureLayer, chartType: "radarChart" });
radarChartModel.circularAxisField = "year";
10 collapsed lines
radarChartModel.titleText = "Historical Hurricane Count by Year";
radarChartModel.setAxisTitleText("Hurricane Count", 0);
radarChartModel.setAxisTitleText("Year", 1);
chartElement.model = radarChartModel;
chartElement.actionMode = "none";
</script>
</body>
</html>

With split by field

Radar charts with a split by field displays multiple lines to compare trends across different categories.

CodePen
Sandbox Download
This chart visualizes the hurricane counts across subbasins over different months.
  1. Set the circularAxisField property to "month" to specify the numeric field.
  2. Set the splitByField property to "SUBBASIN" to group the data by subbasin.
  3. Set the setAreaVisible method to control the area visibility for each series. This can be useful if you want to emphasize overall magnitude/coverage rather than precise per axis values.
With split by field
30 collapsed lines
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>Radar Chart</title>
<style>
html,
body,
arcgis-chart {
height: 100%;
margin: 0;
}
</style>
<!-- Load the ArcGIS Maps SDK for JavaScript from CDN -->
<script type="module" src="https://js.arcgis.com/5.2/"></script>
</head>
<body>
<arcgis-chart></arcgis-chart>
<script type="module">
const { createModel } = await $arcgis.import("@arcgis/charts-components/model/shared/setup-utils.js");
const FeatureLayer = await $arcgis.import("@arcgis/core/layers/FeatureLayer.js");
const featureLayer = new FeatureLayer({
portalItem: {
id: "0cc8050831a145289408f6dac8d4ad7b",
},
});
const chartElement = document.querySelector("arcgis-chart");
const radarChartModel = await createModel({ layer: featureLayer, chartType: "radarChart" });
radarChartModel.circularAxisField = "month";
radarChartModel.splitByField = "SUBBASIN";
// Set the area visibility for each series in the radar chart
radarChartModel.setAreaVisible(true, 0);
radarChartModel.setAreaVisible(true, 1);
radarChartModel.setAreaVisible(true, 2);
radarChartModel.setAreaVisible(true, 3);
radarChartModel.setAreaVisible(true, 4);
radarChartModel.setAreaVisible(true, 5);
radarChartModel.setAreaVisible(true, 6);
radarChartModel.setAreaVisible(true, 7);
radarChartModel.setAreaVisible(true, 8);
11 collapsed lines
radarChartModel.titleText = "Historical Monthly Hurricane Count by Subbasin";
radarChartModel.setAxisTitleText("Hurricane Count", 0);
radarChartModel.setAxisTitleText("Month", 1);
radarChartModel.legendTitleText = "Subbasin";
chartElement.model = radarChartModel;
chartElement.actionMode = "none";
</script>
</body>
</html>