This document include the standard chart types only.
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")
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() |>
tibble::rownames_to_column("model") |>
e_charts(model) |>
e_pie(carb) |>
e_title("Pie chart")
Rosetype
mtcars |>
head() |>
tibble::rownames_to_column("model") |>
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")
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")
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)