You can mark points, lines and areas on your chart to emphasise certain things.

Type

You mark things by passing a list to the data argument, this list can be of many different format, see the official documentation.

One of the format is to pass a type:

  • min
  • max
  • avg
max <- list(
  name = "Max",
  type = "max"
)

min <- list(
  name = "Min",
  type = "min"
)

avg <- list(
  type = "average",
  name = "AVG"
)

By default e_mark_* is applied to all series.

iris %>% 
  group_by(Species) %>% 
  e_charts(Sepal.Length) %>% 
  e_line(Sepal.Width) %>% 
  e_mark_point(data = max) %>% 
  e_mark_point(data = min) %>% 
  e_mark_point(data = avg)

But you can specify one or more serie it should apply apply to.

iris %>% 
  group_by(Species) %>% 
  e_charts(Sepal.Length) %>% 
  e_line(Sepal.Width) %>% 
  e_mark_point(serie = "setosa", data = max) %>% 
  e_mark_point(serie = c("virginica", "setosa"), data = min) %>% 
  e_mark_point(serie = c("virginica", "versicolor"), data = avg)

Custom

library(dplyr)

# get a random point
(
  point <- iris %>% 
    filter(Species == "setosa") %>% 
    sample_n(1) %>%  
    select(
      xAxis = Sepal.Length,
      yAxis = Sepal.Width,
      value = Petal.Width
    ) %>% 
    as.list()
)
#> $xAxis
#> [1] 5
#> 
#> $yAxis
#> [1] 3.3
#> 
#> $value
#> [1] 0.2

iris %>% 
  group_by(Species) %>% 
  e_charts(Sepal.Length) %>% 
  e_line(Sepal.Width) %>% 
  e_mark_point(serie = "setosa", data = point) %>% 
  e_x_axis(min = 4)

Point

iris %>% 
  group_by(Species) %>% 
  e_charts(Sepal.Length) %>% 
  e_line(Sepal.Width) %>% 
  e_mark_point(data = avg) %>% 
  e_x_axis(min = 4)

Line

Horizontally.

iris %>% 
  group_by(Species) %>% 
  e_charts(Sepal.Length) %>% 
  e_line(Sepal.Width) %>% 
  e_mark_line(data = avg) %>% 
  e_x_axis(min = 4)

Vertically.

cars %>% 
  e_charts(speed) %>% 
  e_scatter(dist, symbol_size = 5) %>% 
  e_legend(FALSE) %>% 
  e_mark_line(data = list(xAxis = 7), title = "Tortoise") %>% 
  e_mark_line(data = list(xAxis = 12), title = "Speed Limit") %>% 
  e_mark_line(data = list(xAxis = 22), title = "Need for Speed") 

Area

iris %>% 
  group_by(Species) %>% 
  e_charts(Sepal.Length) %>% 
  e_line(Sepal.Width) %>% 
  e_mark_area(
    data = list(
      list(xAxis = "min", yAxis = "min"), 
      list(xAxis = "max", yAxis = "max")
    )
  ) %>% 
  e_x_axis(min = 4)