MangoTheCat / radarchart

Implementation of the radar chart from chart.js library
Other
68 stars 25 forks source link

radarchart

Project Status: Unsupported – The project has reached a stable, usable state but the author(s) have ceased all work on it. A new maintainer may be desired. Build Status AppVeyor Build Status CRAN Status codecov CRAN RStudio mirror downloads Total CRAN downloads

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

Unfortunately we're not developing radarchart at the moment. Major CRAN fixes will be done if necessary.

Installation

You can install from CRAN.

install.packages("radarchart")

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

devtools::install_github("MangoTheCat/radarchart")

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

devtools::install()

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

Usage

Once installed you can make a radar chart

library(radarchart)

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

Shiny

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

runExampleApp("basic")

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

License

MIT © Mango Solutions, Nick Downie