5

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

but it should be dynamic using dygraphs. An example code here:

library(quantmod)
library(dygraphs)
data(edhec)
R = edhec[, 1:4]
dygraph(R)

Many thanks in advance.

Eric Hung
  • 512
  • 8
  • 23

2 Answers2

6

Create multiple charts, using the synchronization feature here

To view it as one document, you will need to knit an HTML page. Look at this SO answer for details.

Your final result would be like this.

Community
  • 1
  • 1
Divi
  • 1,614
  • 13
  • 23
  • thanks for your quick reply! I've seen these before but what I expect is to display it in the plotting window of R/RStudio. – Eric Hung May 17 '16 at 09:00
2

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:

enter image description here

algoquant
  • 1,087
  • 1
  • 11
  • 15