examples dygraph javascript r shiny dygraphs

examples - Opciones simples de Dygraphs JavaScript en R/Shiny



dygraph examples (1)

¿Hay alguna manera de utilizar opciones simples de Dygraphs JavaScript en R (y Shiny más en específico)?
http://dygraphs.com/options.html

Creo que la función JS() del paquete htmlwidgets puede ser útil, pero no estoy seguro.

Por ejemplo, quiero utilizar highlightSeriesOpts (véase el primer enlace) para resaltar series individuales en un gráfico de dygraphs para visualizar SOLAMENTE las series seleccionadas en la leyenda (y no todas las series al mismo tiempo por defecto). Las 2 parcelas más bajas en el siguiente enlace muestran exactamente lo que se debe lograr:
http://dygraphs.com/gallery/#g/highlighted-series

Ya se ha dado una solución CSS (es decir, .dygraph-legend {display: none;} y .dygraph-legend .highlight {display: inline;} ), pero que de alguna manera no funciona en R / Shiny.

De todos modos, aquí hay un guión conceptual mío. No funciona, pero todos los consejos son muy apreciados.

ui <- fluidPage( sidebarLayout( sidebarPanel(), mainPanel(dygraphOutput("plot")) ) ) server <- function(input, output) { set.seed(123) data <- matrix(rnorm(12), ncol = 2) data <- ts(data) # Workaround for what might be a bug # Reference: http://stackoverflow.com/questions/28305610/use-dygraph-for-r-to-plot-xts-time-series-by-year-only data <- cbind(as.xts(data[,1]), as.xts(data[,2])) colnames(data) <- c("Series 1", "Series 2") #print(data) # Uncomment to view data frame # The logic of the following is that plain Dygraphs JavaScript # code can be used as plotting material output$plot <- JS(" new Dygraph(plot, data, { highlightSeriesOpts: {strokeWidth: 3} }); g.updateOptions({ highlightSeriesOpts: {strokeWidth: 3} }); ") } shinyApp(ui = ui, server = server)


El highlightSeriesOpts hace que el trazo de serie resaltado sea más audaz y no afecte a la leyenda. Todavía necesitará el CSS adecuado para mostrar solo las series más cercanas en la leyenda. Para establecer el highlightSeriesOpts como sugiere, hay un claro ejemplo en http://rstudio.github.io/dygraphs/gallery-series-highlighting.html .

lungDeaths <- cbind(ldeaths, mdeaths, fdeaths) dygraph(lungDeaths, main = "Deaths from Lung Disease (UK)") %>% dyHighlight(highlightSeriesOpts = list(strokeWidth = 3))

Para una respuesta más completa en Shiny, podríamos hacer algo como esto.

library(shiny) library(dygraphs) lungDeaths <- cbind(ldeaths, mdeaths, fdeaths) ui <- dygraph(lungDeaths, main = "Deaths from Lung Disease (UK)") %>% dyHighlight(highlightSeriesOpts = list(strokeWidth = 3)) %>% dyCSS(textConnection(" .dygraph-legend > span { display: none; } .dygraph-legend > span.highlight { display: inline; } ")) server <- function(input,output,session){ } shinyApp(ui,server)