library(dplyr)
if (interactive()) { # comm.out: Cran Fedora errors about some 'browser'
library(sf)
fname <- system.file("shape/nc.shp", package="sf")
nc <- as.data.frame(st_read(fname))
ec.init(load= c('leaflet', 'custom'), # load custom for polygons
js= ec.util(cmd= 'sf.bbox', bbox= st_bbox(nc$geometry)),
series= ec.util(cmd= 'sf.series', df= nc, nid= 'NAME', itemStyle= list(opacity=0.3)),
tooltip= list(formatter= '{a}')
)
htmltools::browsable(
lapply(iris |> group_by(Species) |> group_split(),
function(x) {
x |> ec.init(ctype= 'scatter', title= list(text= unique(x$Species)))
}) |>
ec.util(cmd= 'tabset')
)
p1 <- cars |> ec.init(grid= list(top=26), height=333) # move chart up
p2 <- mtcars |> arrange(mpg) |> ec.init(height=333, ctype='line')
ec.util(cmd= 'tabset', cars= p1, mtcars= p2)
cars |> ec.init(
graphic = list(
ec.util(cmd='button', text='see type', right='center', top=20,
js="function(a) {op=ec_option(echwid); alert(op.series[0].type);}")
)
)
lapply(list('dark','macarons','gray','jazz','dark-mushroom'),
function(x) cars |> ec.init(grid= list(bottom=0)) |> ec.theme(x) ) |>
ec.util(cmd='layout', cols= 2, title= 'my layout')
}
colors <- c("blue","red","green")
cyls <- as.character(sort(unique(mtcars$cyl)))
sers <- lapply(mtcars |> group_by(cyl) |> group_split(), \(x) {
cyl <- as.character(unique(x$cyl))
list(type='scatter', id=cyl, dataGroupId=cyl,
data= ec.data(x |> select(mpg,hp)),
universalTransition= TRUE)
})
oscatter <- list(
title= list(subtext='click points to morph'),
color= colors, tooltip= list(show=TRUE),
xAxis= list(scale=TRUE, name='mpg'), yAxis= list(scale=TRUE, name='hp'),
series= sers
)
opie <- list(
title= list(text= 'Average hp'),
color= colors, tooltip= list(show=TRUE),
series= list(list(
type= 'pie', label= list(show=TRUE), colorBy= 'data',
data= ec.data(mtcars |> group_by(cyl) |> summarize(value= mean(hp)) |>
mutate(groupId= as.character(cyl), name= as.character(cyl)),'names'),
universalTransition= list(enabled=TRUE, seriesKey= cyls)
))
)
ec.util(cmd='morph', oscatter, opie)
Run the code above in your browser using DataLab