First, you should load recharts
:
library(recharts)
Radar charts are based on Polar Coordinate System, which calls for center and radius. When you generate an Echarts object of radar chart using echartr
, you can then modify the axes by setPolar
.
All the function names have two forms: small camel and lowercase_underscore (endorsed by Hadley Wickham).
setPolar(chart, polarIndex = NULL, center = c("50%", "50%"),
radius = "90%", startAngle = 90, splitNumber = 5, boundaryGap = c(0,
0), scale = FALSE, axisLine = NULL, axisLabel = NULL,
splitLine = NULL, splitArea = NULL, type = c("polygon", "circle"),
indicator = NULL, axisName = NULL, ...)
set_polar(chart, polarIndex = NULL, center = c("50%", "50%"),
radius = "90%", startAngle = 90, splitNumber = 5, boundaryGap = c(0,
0), scale = FALSE, axisLine = NULL, axisLabel = NULL,
splitLine = NULL, splitArea = NULL, type = c("polygon", "circle"),
indicator = NULL, axisName = NULL, ...)
Arg | Requirement |
---|---|
chart |
Echarts object generated by |
PolarIndex |
Integer vector. The index of the polar systems you want to set. Default NULL. |
center |
Vector of the x, y position of the polar center. Could be numeric or character (percent form) vectors of length 2. Default c(‘50%’, ‘50%’). |
radius |
The radius of the polar system, could be numeric or character (percent form). Default ‘75%’. |
startAngle |
Numeric (-180 ~ 180). The start angle. Default 90. |
splitNumber |
Numeric. The number of sections to divide. Default 5. |
boundaryGap |
Numeric vector of length 2. The gapping policy of the axis. Default |
scale |
Logical. Whether to ignore zero and zoom toward the range of _min and _max. |
axisLine |
List. Axis line styles. You can set its show, onZero, lineStyle features. Default |
axisLabel |
List. Axis label styles. You can set its |
splitLine |
List. Split line styles. You can set its |
splitArea |
List. Split area styles. You can set its |
type |
Character, ‘polygon’ or ‘circle’. The type of the polar shape. Default ‘polygon’.. |
indicator |
List. The radar indicator and labels. The basic structure is |
axisName |
List. The name of the axis. You can set its |
… |
Elipsis. |
Let’s use mtcars
to generate an Echarts objects g
:
require(data.table)
## Loading required package: data.table
cars = mtcars[c('Merc 450SE','Merc 450SL','Merc 450SLC'),
c('mpg','disp','hp','qsec','wt','drat')]
cars$model <- rownames(cars)
cars <- data.table::melt(cars, id.vars='model')
names(cars) <- c('model', 'indicator', 'Parameter')
g <- echartr(cars, indicator, Parameter, facet=model, type='radar') %>%
setTitle('Merc 450SE vs 450SL vs 450SLC')
You can change the three radars one by one using setPolar
.
g %>% setPolar(1, center=c('20%', '50%'), radius='30%', splitNumber=10) %>%
setPolar(2, center=c('50%', '50%'), radius='35%', type='circle') %>%
setPolar(3, center=c('80%', '50%'), radius='30%',
splitArea=list(show=FALSE), axisLabel=list(show=TRUE))
Or change all of the radars at one time.
g %>% setPolar(splitNumber=10, type='circle', splitArea=list(
areaStyle=areaStyle(color=c('white', 'lightblue'))))