r - how to plot dygraphs in multiple panels

后端 未结 2 523
梦谈多话
梦谈多话 2021-01-03 06:58

I was trying to plot dynamic graph in different panels as it could be done on the website using group such as

but it should be dynamic using dygraphs.

2条回答
  •  日久生厌
    2021-01-03 07:23

    To plot multiple dygraphs in the same RStudio window you must first create a list of dygraphs objects, and then render the dygraphs list using package htmltools. Yihui Xie from RStudio provided the answer here: Yihui Xie answer (but without grouping).

    Here is working R code that produces grouped dygraphs candlestick plots:

    # load packages
    library(quantmod)
    library(dygraphs)
    library(htmltools)
    
    # download time series into an environment
    sym_bols <- c("VTI", "EEM")
    data_env <- new.env()
    quantmod::getSymbols(sym_bols, from="2017-01-01", env=data_env)
    
    # create a list of dygraphs objects in a loop
    dy_graph <- eapply(data_env, function(x_ts) {
      dygraphs::dygraph(x_ts[, 1:4], group="etfs",
        main=paste("Plot of:", substring(colnames(x_ts)[1], 1, 3)),
          width=600, height=400) %>% dygraphs::dyCandlestick()
    })  # end eapply
    
    # render the dygraphs objects using htmltools
    htmltools::browsable(htmltools::tagList(dy_graph))
    
    # perform same plotting as above using pipes syntax
    # create a list of dygraphs objects in a loop
    eapply(data_env, function(x_ts) {
      dygraphs::dygraph(x_ts[, 1:4], group="etfs",
        main=paste("Plot of:", substring(colnames(x_ts)[1], 1, 3)),
          width=600, height=400) %>% dygraphs::dyCandlestick()
    }) %>% # end eapply
    # render the dygraphs objects using htmltools
      htmltools::tagList() %>% htmltools::browsable()
    

    The above R code produces the following grouped dygraphs candlestick plots:

提交回复
热议问题