如何使用数据框在 dygraphs 中创建多个阴影?

How can I create multiple shades in dygraphs using a data frame?

我有使用 dygraphs 绘制的时间序列数据。现在我想遮蔽一些事件。这些事件的起点和终点存储在数据框中。但是,当我尝试编写一个函数来添加多个阴影时,我总是收到错误消息。

我曾尝试在代码中直接使用 for 循环,但随后收到错误消息,指出无法找到我的虚拟变量。 我曾尝试编写一个带有 for 循环的函数,但不知何故,当我应用它时,它使用的第一个参数是“.”。这当然会搞乱功能。

for (i in 1:length(dataframe$start)){
dyShading(from = dataframe$start[i], to = dataframe$end[i])
}
addshading <- function(periods){
  for (i in 1:length(periods[,1])){
    x <-dyShading(from = periods$start[i], to = periods$end[i])
  }
  x
}

运行 dygraph() %>% 之后的 for 循环给出以下错误信息:

Error in function_list[k] : object 'i' not found

运行 addshading(dataframe)dygraph() %>% 之后直接给出以下错误信息:

Error in addshading(., dataframe) : unused argument (dataframe)

我希望我说清楚了,我是新来寻求编码帮助的。

您需要先将 dygraph() 分配给一个对象,然后使用 dyShading() -

增量更新该对象
p <- dygraph(your_data)

for (i in 1:nrow(dataframe)) {
  p <- p %>% dyShading(from = dataframe$start[i], to = dataframe$end[i])
}

print(p)