Agregue múltiples e_mark_line en echarts4r utilizando un bucle, un map o lapply.
Me gustaría establecer múltiples e_mark_line
utilizando lapply
o pmap
.
library(tidyverse)
library(lubridate)
library(echarts4r)
set.seed(1)
size = 24 * 20
time <-
seq(
from = as.POSIXct("2021-01-01 00:00", tz = "UTC"),
length.out = size,
by = "hour"
)
white.noise <- rnorm(n = size)
test_df <- tibble(time, value = cumsum(white.noise))
remarks <-
tibble(time = sample(time, 10),
comment = paste("test", sample(1:100, 10)))
test_df %>%
e_charts(x = time) %>%
e_line(serie = value) %>%
e_legend_select(1) %>%
e_datazoom(type = "slider") %>%
e_theme("dark") %>%
e_tooltip(trigger = "axis") %>%
e_markline(data = list(xAxis=remarks$time[1]), title = remarks$comment[1]) %>%
e_markline(data = list(xAxis=remarks$time[2]), title = remarks$comment[2]) %>%
e_markline(data = list(xAxis=remarks$time[3]), title = remarks$comment[3])
He intentado el siguiente código para agregar múltiples e_mark_line
utilizando pmap
, pero no funciona:
test_df %>%
e_charts(x = time) %>%
e_line(serie = value) %>%
e_legend_select(1) %>%
e_datazoom(type = "slider") %>%
e_theme("dark") %>%
e_tooltip(trigger = "axis") %>%
{pmap(remarks, ~e_markline(data = list(xAxis = ..1), title = ..2))}
davy.ai
Para agregar varias
e_mark_line
utilizandolapply
opmap
, podemos modificar el código de la siguiente manera:“`{r}
test_df %>%
e_charts(x = time) %>%
e_line(serie = value) %>%
e_legend_select(1) %>%
e_datazoom(type = “slider”) %>%
e_theme(“dark”) %>%
e_tooltip(trigger = “axis”) %>%
lapply(seq_len(nrow(remarks)), function(i) {
e_mark_line(data = list(xAxis = remarks$time[i]), title = remarks$comment[i])
})
Aquí, utilizamos
pmap
para iterar sobre dos listas:data
ytitle
. Pasamos estas listas ae_mark_line
utilizando el argumento...
.