How to Make Stunning Radar Charts with Python — Implemented in Matplotlib and Plotly
Easily visualize data beyond the 2nd dimension with Radar Charts — implemented in both Matplotlib and Plotly

Visualizing data beyond two dimensions isn’t a good idea — most of the time. That’s where radar charts come in, enabling you to visually represent one or more groups of values over multiple identically scaled variables.
Today you’ll learn how radar charts can visualize data across multiple dimensions, both with Matplotlib and Plotly. You’ll also learn what radar charts are and the pros and cons of using them.
The article is structured as follows:
- Introduction to Radar Charts
- Pros and Cons of Radar Charts
- Radar Charts with Matplotlib
- Radar Charts with Plotly
- Conclusion
You can download the corresponding Notebook here.
Introduction to Radar Charts
You most likely know what a radar chart is. Sometimes they’re referred to as spider charts or polar charts, but these terms represent the same idea. The goal of the radar chart is to visually represent one or more groups of values over multiple variables.
For example, let’s say you want to visually represent restaurants over some set of common variables — such as food quality, food variety, service quality, and others (spoiler alert: you’ll do that later). Radar charts should be a go-to visualization type for this scenario.
Each variable is given an axis, and axes are arranged radially around the center. Needless to say, but the axes are spaced equally. A single observation is then plotted along each axis like a scatter plot, but the points are then connected to form a polygon. You can reuse the same logic to plot multiple polygons in the same chart.
And that’s the basic idea behind radar charts. Let’s examine the pros and cons before diving into hands-on examples.
Pros and Cons of Radar Charts
Let’s talk about the pros first:
- Radar charts are excellent for visualizing comparisons between observations — you can easily compare multiple attributes among different observations and see how they stack up. For example, you could use radar charts to compare restaurants based on some common variables.
- It’s easy to see overall “top performers” — the observation with the highest polygon area should be the best if you’re looking at the overall performance.
But things aren’t all sunshine and rainbows, as you can see from the following cons list:
- Radar charts can get confusing fast — comparing more than a handful of observations leads to a mess no one wants to look at.
- It can be tough to find the best options if there are too many variables — just imagine seeing a radar chart with 20+ variables. No one wants to even look at it; God forbid to interpret it.
- The variables have to be on the same scale — it makes no sense to compare student grades (ranging from 1 to 5) and satisfaction with some service (ranging from 0 to 100).
You now know what radar charts are and when it makes sense to use them. You’ll learn how to draw them with Matplotlib next.
Radar Charts with Matplotlib
Matplotlib is a de facto standard data visualization library for Python, so that’s why we’re looking at it first.
The goal is to compare three restaurants among the following categories: food quality, food variety, service quality, ambiance, and affordability. All categories range from 1 to 5, so they are a perfect candidate for visualization with radar charts.
The following code snippet demonstrates how you can specify data and categories, label locations, and visualize the chart. There are a couple of things you should know beforehand:
label_locis a list that represents the label location in radiansplt.subplot(polar=True)must be used to make a radar chartplt.thetagrids()is used to place the category names on label locations
These might be confusing at first, but you’ll get the gist in no time. You can use the following code snippet to make the visualization:








