Radar charts, also known as spider charts, polar charts, web charts or star plots, are a powerful visualization tool. They’re commonly used to plot multivariate, quantitative data. Each variable is represented on a separate axis, which all radiate out from a central point, giving the chart a ‘radar’ appearance.
These charts are especially useful when you want to visualize performance, measure efficiency, or compare different entities based on multiple parameters or criteria.
This article will show you how to create radar charts in R using base R functions, the fmsb
package, the ggplot2
package.
1. Setting Up the Environment
The first step is to set up the environment by installing and loading the necessary packages.
Here’s how to do it:
# Install necessary packages
install.packages(c("fmsb", "ggplot2","reshape2"))
# Load necessary packages
library(fmsb)
library(ggplot2)
library(reshape2)
2. Creating Radar Charts with fmsb
The fmsb
package provides the radarchart()
function, which we can use to create radar charts. This function expects the data in a specific format: the first two rows should indicate the minimum and maximum of each axis, respectively, and the remaining rows should contain the data to plot.Here’s an example:
# Create a data frame
df <- data.frame(
min = c(0, 0, 0, 0, 0),
max = c(5, 5, 5, 5, 5),
group1 = c(1, 4, 3, 4, 2),
group2 = c(5, 3, 2, 4, 1),
row.names = c("Variable 1", "Variable 2", "Variable 3", "Variable 4", "Variable 5")
)
# Create a radar chart
radarchart(df)

3. Creating Radar Charts with ggplot2
While ggplot2 does not provide a specific function for creating radar charts, we can create these charts by mapping a variable to the x
, y
, and group
aesthetics and converting the x
variable to a factor.
Here’s an example:
# Create a data frame
df <- data.frame(
variable = rep(c("Variable 1", "Variable 2", "Variable 3", "Variable 4", "Variable 5"), 2),
value = c(1, 4, 3, 4, 2, 5, 3, 2, 4, 1),
group = rep(c("Group 1", "Group 2"), each = 5)
)
# Create a radar chart
ggplot(df, aes(x = variable, y = value, group = group, color = group)) +
geom_polygon(fill = NA) +
geom_line() +
coord_polar()

5. Customizing Radar Charts
These examples create basic radar charts. You might want to customize these charts further. For instance, you can add a title, change the axis labels, or modify the colors.
Here’s how to add a title and change the colors in the ggplot2 example:
# Create a data frame
df <- data.frame(
variable = rep(c("Variable 1", "Variable 2", "Variable 3", "Variable 4", "Variable 5"), 2),
value = c(1, 4, 3, 4, 2, 5, 3, 2, 4, 1),
group = rep(c("Group 1", "Group 2"), each = 5)
)
ggplot(df, aes(x = variable, y = value, group = group, color = group)) +
geom_polygon(fill = NA) +
geom_line() +
coord_polar() +
labs(title = "Radar Chart with ggplot2") +
scale_color_manual(values = c("Group 1" = "blue", "Group 2" = "red"))

Conclusion
In this guide, you’ve learned how to create radar charts in R using base R, fmsb and ggplot2. Each method has its strengths: the fmsb package provides a dedicated function for creating radar charts, ggplot2 allows for more customization options.