在 Shiny for R 中设置 Dygraph 的交互模型
Setting the interaction model of a Dygraph in Shiny for R
我希望将在 "Custom interaction model" 下的 http://dygraphs.com/gallery/#g/interaction 处看到的自定义交互添加到我的 Shiny Web 应用程序中。
据我了解,这需要在页面上附加一些JS并在图形上设置交互模型:
interactionModel : {
'mousedown' : downV3,
'mousemove' : moveV3,
'mouseup' : upV3,
'click' : clickV3,
'dblclick' : dblClickV3,
'mousewheel' : scrollV3
}
然而,interactionModel
似乎并没有列为R端dyOptions
函数中的参数。
有办法解决这个问题吗?
更新:
查看dyOptions
的源码,好像可以直接修改选项:
g <- dyGraph(series)
g$x$attr$option <- "Value"
不过,这里设置interactionModel
好像不行。
参见:https://github.com/rstudio/dygraphs/blob/master/R/options.R
更新:
您确实可以使用以下方式设置选项:
g$x$attrs$option <- "Value" # Note that it is "attrs", not "attr"
这可以用来关闭交互模式:
graph$x$attrs$interactionModel <- "{}"
剩下的问题是通过 JSON 将 JS 函数引用传递给页面。
您可以使用 JS 函数将 JavaScript 通过 JSON 传递给客户端。
在ui.R中:
tags$head(tags$script(src="interaction.js"))
在server.R中:
g <- dygraph(series(), main = "Graph", xlab = "Date", ylab = "Amount") %>%
dySeries(label = "X")
g$x$attrs$interactionModel <- list(
mousedown = JS("downV3"),
mousemove = JS("moveV3"),
mouseup = JS("upV3"),
click = JS("clickV3"),
dblclick = JS("dblClickV3"),
mousewheel = JS("scrollV3"))
我希望将在 "Custom interaction model" 下的 http://dygraphs.com/gallery/#g/interaction 处看到的自定义交互添加到我的 Shiny Web 应用程序中。
据我了解,这需要在页面上附加一些JS并在图形上设置交互模型:
interactionModel : {
'mousedown' : downV3,
'mousemove' : moveV3,
'mouseup' : upV3,
'click' : clickV3,
'dblclick' : dblClickV3,
'mousewheel' : scrollV3
}
然而,interactionModel
似乎并没有列为R端dyOptions
函数中的参数。
有办法解决这个问题吗?
更新:
查看dyOptions
的源码,好像可以直接修改选项:
g <- dyGraph(series)
g$x$attr$option <- "Value"
不过,这里设置interactionModel
好像不行。
参见:https://github.com/rstudio/dygraphs/blob/master/R/options.R
更新:
您确实可以使用以下方式设置选项:
g$x$attrs$option <- "Value" # Note that it is "attrs", not "attr"
这可以用来关闭交互模式:
graph$x$attrs$interactionModel <- "{}"
剩下的问题是通过 JSON 将 JS 函数引用传递给页面。
您可以使用 JS 函数将 JavaScript 通过 JSON 传递给客户端。
在ui.R中:
tags$head(tags$script(src="interaction.js"))
在server.R中:
g <- dygraph(series(), main = "Graph", xlab = "Date", ylab = "Amount") %>%
dySeries(label = "X")
g$x$attrs$interactionModel <- list(
mousedown = JS("downV3"),
mousemove = JS("moveV3"),
mouseup = JS("upV3"),
click = JS("clickV3"),
dblclick = JS("dblClickV3"),
mousewheel = JS("scrollV3"))