Radar Chart from 'Chart.js'

Create interactive radar charts using the 'Chart.js' 'JavaScript' library and the 'htmlwidgets' package. 'Chart.js' < http://www.chartjs.org/> is a lightweight library that supports several types of simple chart using the 'HTML5' canvas element. This package provides an R interface specifically to the radar chart, sometimes called a spider chart, for visualising multivariate data.

Build Status AppVeyor Build Status CRAN Status CRAN RStudio mirror downloads Total CRAN downloads

An R implementation of the radar chart from the chart.js javascript library.


You can install from CRAN.


To install the latest version direct from GitHub you'll need devtools installed. Assuming you have this run:


Or if you want to hack about with the code then clone the repository, change directory into it and run


Note: htmlwidgets packages don't work well with devtools::load_all().


Once installed you can make a radar chart

labs <- c("Communicator", "Data Wangler", "Programmer",
          "Technologist",  "Modeller", "Visualizer")
scores <- list(
  "Rich" = c(9, 7, 4, 5, 3, 7),
  "Andy" = c(7, 6, 6, 2, 6, 9),
  "Aimee" = c(6, 5, 8, 4, 7, 6)
chartJSRadar(scores = scores, labs = labs, maxScale = 10)
Static image of example output

Static version. Real plots are interactive

Alternatively, you may supply a data frame and chartJSRadar will pickup the labels from the first column of the data. Also we're showing an option to display data set labels in the mouse over.

scores <- data.frame("Label"=c("Communicator", "Data Wangler", "Programmer",
                     "Technologist",  "Modeller", "Visualizer"),
                     "Rich" = c(9, 7, 4, 5, 3, 7),
                     "Andy" = c(7, 6, 6, 2, 6, 9),
                     "Aimee" = c(6, 5, 8, 4, 7, 6))
chartJSRadar(scores, maxScale = 10, showToolTipLabel=TRUE)
Static image of example output

Static version. Real plots are interactive

You can now also add a title

chartJSRadar(skills, main = "Data Science Radar")
Static image of example output

Static version. Real plots are interactive


As it's based on htmlwidgets it's easy to use radarchart with Shiny. Just use the

chartJSRadarOutput("ID", width = "450", height = "300")

function in your ui.R and call chartJSRadar as normal in your server.R. A minimal example can be found in inst/shiny-examples/basic. You can run this with the runExampleApp function


An "options" app is available to help construct more customised radar charts.


MIT © Mango Solutions, Nick Downie



  • Upgrade to chart.js v2.4.0
  • Allows titles with main option
  • Allows legends


  • Plots with no data will render (with no data) issue 5
  • Change Shiny defaults so the canvas isn't huge issue 3
  • Added basic shiny example
  • Added options shiny example
  • runExample function to easily access the shiny apps


Fix test error with new htmlwidgets version


First CRAN release


  • Data frame input accepted.
  • colMatrix now aligned to col2rgb output (transpose of previous version).


First GitHub release.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.3.1 by Doug Ashton, 4 years ago


Report a bug at https://github.com/mangothecat/radarchart/issues

Browse source code at https://github.com/cran/radarchart

Authors: Doug Ashton [aut, cre] , Shane Porter [aut] , Nick Downie [ctb] (chart.js library) , Tanner Linsley [ctb] (chart.js library) , William Entriken [ctb] (chart.js library)

Documentation:   PDF Manual  

MIT + file LICENSE license

Imports htmlwidgets, htmltools, grDevices

Suggests testthat, knitr, rmarkdown, tidyr, shiny

Imported by PLMIX.

Suggested by teachingApps.

See at CRAN