This document include the standard chart types only.

Line and Area

library(echarts4r)

df <- data.frame(
  x = seq(50),
  y = rnorm(50, 10, 3),
  z = rnorm(50, 11, 2),
  w = rnorm(50, 9, 2)
)

df %>% 
  e_charts(x) %>% 
  e_line(z) %>% 
  e_area(w) %>% 
  e_title("Line and area charts")

Bar and step

df %>% 
  e_charts(x) %>% 
  e_bar(y, name = "Serie 1") %>% 
  e_step(z, name = "Serie 2") %>% 
  e_title("Bar and step charts")

Scatter

df %>% 
  e_charts(x) %>% 
  e_scatter(y, z) %>% 
  e_visual_map(z, scale = e_scale) %>% # scale color
  e_legend(FALSE) # hide legend

Effect Scatter

df %>% 
  head(10) %>% 
  e_charts(x) %>% 
  e_effect_scatter(y, z) %>% 
  e_visual_map(z) %>% # scale color
  e_legend(FALSE) # hide legend

Polar

df %>% 
  e_charts(x) %>% 
  e_polar() %>% 
  e_angle_axis(x) %>% # angle = x
  e_radius_axis() %>% 
  e_bar(y, coord_system = "polar") %>% 
  e_scatter(z, coord_system = "polar")

Radial

df %>% 
  head(10) %>% 
  e_charts(x) %>% 
  e_polar() %>% 
  e_angle_axis() %>% 
  e_radius_axis(x) %>% 
  e_bar(y, coord_system = "polar") %>% 
  e_scatter(z, coord_system = "polar")

Candlestick

library(quantmod)

getSymbols("GS") #Goldman Sachs
GS <- as.data.frame(GS)
GS$date <- row.names(GS)
GS %>% 
  e_charts(date) %>% 
  e_candle(GS.Open, GS.Close, GS.Low, GS.High, name = "Goldman Sachs") %>% 
  e_datazoom(type = "slider") %>% 
  e_title("Candlestick chart", "Quantmod data")

Funnel

funnel <- data.frame(stage = c("View", "Click", "Purchase"), value = c(80, 30, 20))

funnel %>% 
  e_charts() %>% 
  e_funnel(value, stage) %>% 
  e_title("Funnel")

Sankey

sankey <- data.frame(
  source = c("a", "b", "c", "d", "c"),
  target = c("b", "c", "d", "e", "e"),
  value = ceiling(rnorm(5, 10, 1)),
  stringsAsFactors = FALSE
)

sankey %>% 
  e_charts() %>% 
  e_sankey(source, target, value) %>% 
  e_title("Sankey chart")

Heatmap

v <- LETTERS[1:10]
matrix <- data.frame(
  x = sample(v, 300, replace = TRUE), 
  y = sample(v, 300, replace = TRUE), 
  z = rnorm(300, 10, 1),
  stringsAsFactors = FALSE
) %>% 
  dplyr::group_by(x, y) %>% 
  dplyr::summarise(z = sum(z)) %>% 
  dplyr::ungroup()
#> `summarise()` has grouped output by 'x'. You can override using the `.groups` argument.

matrix %>% 
  e_charts(x) %>% 
  e_heatmap(y, z) %>% 
  e_visual_map(z) %>% 
  e_title("Heatmap")

Parallel

df <- data.frame(
  price = rnorm(5, 10),
  amount = rnorm(5, 15),
  letter = LETTERS[1:5]
)

df %>% 
  e_charts() %>% 
  e_parallel(price, amount, letter) %>% 
  e_title("Parallel chart")

Pie

mtcars %>% 
  head() %>% 
  dplyr::mutate(model = row.names(.)) %>% 
  e_charts(model) %>% 
  e_pie(carb) %>% 
  e_title("Pie chart")

Donut

mtcars %>% 
  head() %>% 
  dplyr::mutate(model = row.names(.)) %>% 
  e_charts(model) %>% 
  e_pie(carb, radius = c("50%", "70%")) %>% 
  e_title("Donut chart")

Rosetype

mtcars %>% 
  head() %>% 
  dplyr::mutate(model = row.names(.)) %>% 
  e_charts(model) %>% 
  e_pie(hp, roseType = "radius")

Sunburst

df <- data.frame(
  parents = c("","earth", "earth", "mars", "mars", "land", "land", "ocean", "ocean", "fish", "fish", "Everything", "Everything", "Everything"),
  labels = c("Everything", "land", "ocean", "valley", "crater", "forest", "river", "kelp", "fish", "shark", "tuna", "venus","earth", "mars"),
  value = c(0, 30, 40, 10, 10, 20, 10, 20, 20, 8, 12, 10, 70, 20)
)

# create a tree object
universe <- data.tree::FromDataFrameNetwork(df)

# use it in echarts4r
universe %>% 
  e_charts() %>% 
  e_sunburst()

Tree

library(tibble)

tree <- tibble(
  name = "earth",        # 1st level
  children = list(
    tibble(name = c("land", "ocean"),             # 2nd level
       children = list(
         tibble(name = c("forest", "river")),   # 3rd level 
         tibble(name = c("fish", "kelp"),
            children = list(
               tibble(name = c("shark", "tuna"),  # 4th level 
               NULL  # kelp
            ))
         )
       ))
  )
)

tree %>% 
  e_charts() %>% 
  e_tree() %>% 
  e_title("Tree graph")

Treemap

universe %>% 
  e_charts() %>% 
  e_treemap() %>% 
  e_title("Treemap chart")

River

dates <- seq.Date(Sys.Date() - 30, Sys.Date(), by = "day")

river <- data.frame(
  dates = dates,
  apples = runif(length(dates)),
  bananas = runif(length(dates)),
  pears = runif(length(dates))
)

river %>% 
  e_charts(dates) %>% 
  e_river(apples) %>% 
  e_river(bananas) %>% 
  e_river(pears) %>% 
  e_tooltip(trigger = "axis") %>% 
  e_title("River charts", "(Streamgraphs)")

Calendar

dates <- seq.Date(as.Date("2017-01-01"), as.Date("2018-12-31"), by = "day")
values <- rnorm(length(dates), 20, 6)

year <- data.frame(date = dates, values = values)

year %>% 
  e_charts(date) %>% 
  e_calendar(range = "2018") %>% 
  e_heatmap(values, coord_system = "calendar") %>% 
  e_visual_map(max = 30) %>% 
  e_title("Calendar", "Heatmap")

For multiple years, lay multiple calendars, group by year.

year %>% 
  dplyr::mutate(year = format(date, "%Y")) %>% # get year from date
  group_by(year) %>% 
  e_charts(date) %>% 
  e_calendar(range = "2017",top="40") %>% 
  e_calendar(range = "2018",top="260") %>% 
  e_heatmap(values, coord_system = "calendar") %>% 
  e_visual_map(max = 30) %>% 
  e_title("Calendar", "Heatmap")%>%
  e_tooltip("item") 

Gauge

e_charts() %>% 
  e_gauge(41, "PERCENT") %>% 
  e_title("Gauge")

Radar

df <- data.frame(
  x = LETTERS[1:5],
  y = runif(5, 1, 5),
  z = runif(5, 3, 7)
)

df %>% 
  e_charts(x) %>% 
  e_radar(y, max = 7, name = "radar") %>%
  e_radar(z, max = 7, name = "chart") %>%
  e_tooltip(trigger = "item")

Wordcloud

words <- function(n = 5000) {
  a <- do.call(paste0, replicate(5, sample(LETTERS, n, TRUE), FALSE))
  paste0(a, sprintf("%04d", sample(9999, n, TRUE)), sample(LETTERS, n, TRUE))
}

tf <- data.frame(terms = words(100), 
  freq = rnorm(100, 55, 10)) %>% 
  dplyr::arrange(-freq)

tf %>% 
  e_color_range(freq, color) %>% 
  e_charts() %>% 
  e_cloud(terms, freq, color, shape = "circle", sizeRange = c(3, 15)) %>% 
  e_title("Wordcloud", "Random strings")

Liquifill

liquid <- data.frame(val = c(0.6, 0.5, 0.4))

liquid %>% 
  e_charts() %>% 
  e_liquid(val)