在R中使用data.frame在dygraphs中进行多重注释

3

在R语言中有一个dygraphs的包,可以添加注释:https://rstudio.github.io/dygraphs/gallery-annotations.html

dygraph(presidents, main = "Quarterly Presidential Approval Ratings") %>%
  dyAxis("y", valueRange = c(0, 100)) %>%
  dyAnnotation("1950-7-1", text = "A", tooltip = "Korea") %>%
  dyAnnotation("1965-1-1", text = "B", tooltip = "Vietnam")

我想知道如何创建一个数据框来组织所有的注释并通过单个的dyAnnotation选项添加。我尝试过:

dygraph(presidents, main = "Quarterly Presidential Approval Ratings") %>%
  dyAxis("y", valueRange = c(0, 100)) %>%
  dyAnnotation(c("1950-7-1","1965-1-1"), text = c("A","B"), tooltip = c("Korea","Vietnam"))

它不能工作。

1个回答

2
你可以像这样做:
步骤1. 创建一个基本的dygraph,不要添加注释,并将其保存为对象(虽然不是必须的,但在步骤2中可以创建更短的字符串):
dygraph(presidents, main = "Quarterly Presidential Approval Ratings") %>%
  dyAxis("y", valueRange = c(0, 100)) -> graph

步骤2. 创建两个(如果你想创建 tooltips,则创建三个)向量,包含带有日期文本的注释。然后创建以下字符串

 dates<-c("1950-7-1","1965-1-1","1972-1-1")
 texts<-c("a","bb","cc")

 my_code<-paste("graph %>%",
 paste0("dyAnnotation('",dates,"',text='",texts,"')",collapse = " %>% "))

您将会得到类似于这样的东西:
"graph %>% dyAnnotation('1950-7-1',text='a') %>% dyAnnotation('1965-1-1',text='bb') %>% dyAnnotation('1972-1-1',text='cc')"

第三步。使用evalparse函数:
  eval(parse(text = my_code))

多个注释

如果您想创建一个包含此图形的对象,请更改步骤2中的string

my_code<-paste("graph2<- graph %>%",
  paste0("dyAnnotation('",dates,"',text='",texts,"')",collapse = " %>% "))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接