Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

r - how to plot dygraphs in multiple panels

Tags:

css

r

dygraphs

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.

like image 490
Eric Hung Avatar asked May 17 '16 04:05

Eric Hung


2 Answers

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.

like image 132
Divi Avatar answered Nov 15 '22 00:11

Divi


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

like image 42
algoquant Avatar answered Nov 15 '22 00:11

algoquant