首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用循环、映射或lapply在echarts4r中添加多个echarts4r

使用循环、映射或lapply在echarts4r中添加多个echarts4r
EN

Stack Overflow用户
提问于 2022-01-03 06:02:47
回答 1查看 188关注 0票数 0

我希望使用lapplypmap设置多个lapply

代码语言:javascript
复制
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_mark_line(data = list(xAxis=remarks$time[1] ), title = remarks$comment[1]) %>% 
  e_mark_line(data = list(xAxis=remarks$time[2] ), title = remarks$comment[2]) %>% 
  e_mark_line(data = list(xAxis=remarks$time[3] ), title = remarks$comment[3]) 

我尝试了以下代码来使用e_mark_line添加多个pmap,但是它不起作用:

代码语言:javascript
复制
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_mark_line(data=list(xAxis=..1),title==..2))}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-03 09:24:19

不确定这是否可以通过pmap实现。对我来说,实现您想要的结果的更自然的方法是使用purrr::reduce2而不是pmap,如下所示:

代码语言:javascript
复制
library(echarts4r)
library(magrittr)
library(purrr)


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") %>%
  reduce2(
    .x = remarks$time, .y = remarks$comment,
    .f = function(x, y, z) e_mark_line(x, data = list(xAxis = y), title = z),
    .init = .
  )

数据

代码语言:javascript
复制
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 <- data.frame(time, value = cumsum(white.noise))

remarks <- data.frame(
  time = sample(time, 10),
  comment = paste("test", sample(1:100, 10))
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70562164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档