Есть ли способ использовать простые Dygraphs Параметры JavaScript в R (и Shiny более конкретно)?
http://dygraphs.com/options.htmlPlain Dygraphs Параметры JavaScript в R/Shiny
Я думаю, что JS()
функция из пакета htmlwidgets может быть полезным, но я не уверен.
Например, я хочу использовать highlightSeriesOpts
(см. Первую ссылку), чтобы выделить отдельные серии на графике диаграфов, чтобы отображать ТОЛЬКО выбранную серию в легенде (и не все серии в то же время по умолчанию). Нижние 2 участка по следующей ссылке показывают, что именно должно быть достигнуто: решение
http://dygraphs.com/gallery/#g/highlighted-series
CSS-уже дан (т.е. .dygraph-legend {display: none;}
и .dygraph-legend .highlight {display: inline;}
), но что-то не работает в R/Shiny.
Во всяком случае, вот мой концептуальный сценарий. Это не работает, но все советы очень ценятся.
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)
Я не могу ответить на ваш вопрос, но почему бы просто не использовать https://rstudio.github.io/dygraphs/? – MLavoie
Я уже использую пакет dygraphs для R :). Однако нет удобной встроенной функции для отображения только выделенной серии в легенде. CSS необходим для этой функции, но предоставленный CSS-код на веб-сайте dygraphs каким-то образом не работает в R/Shiny. Скорее всего, он перезаписывается во время выполнения. Так можно ли это проследить? –