R Shiny从scatterD3

时间:2016-11-24 04:51:41

标签: r shiny

我在一个闪亮的应用程序中有一个scatterd3(包散点图3)图,但我无法弄清楚如何在点击绘制的点后回传信息。这个网站似乎解释了它,但我无法得到它: https://cran.r-project.org/web/packages/scatterD3/vignettes/introduction.html#javascript-callback-on-clicking-point

scatterD3(data = mtcars, x = wt, y = mpg,
  click_callback = "function(id, index) {
  if(id && typeof(Shiny) != 'undefined') {
      Shiny.onInputChange(id + '_selected', index);
  }
}")

您知道点击信息的存储位置吗?我以为我可以用闪亮的gui称之为:

verbatimTextOutput("scatterPlot$index")

有什么想法吗? 干杯

2 个答案:

答案 0 :(得分:3)

使用两个参数调用click_callback JavaScript函数:plot unique id和clicked point index。通过使用Shiny.onInputChange,您可以将闪亮的input广告位绑定到某个值并获取数据。

例如,使用以下click_callback函数:

scatterD3(data = mtcars, x = wt, y = mpg,
  click_callback = "function(id, index) {
  if(id && typeof(Shiny) != 'undefined') {
      Shiny.onInputChange('selected_point', index);
  }
}")

您应该可以执行以下操作:

verbatimTextOutput(paste("Index of clicked point : ", input$selected_point))

这是scatterD3中的最新功能,因此如果出现错误或缺少功能,请不要犹豫open an issue on Github

答案 1 :(得分:1)

朱巴的回答帮了很多,见上文。 我想更新一个numericInput字段,所以在我的服务器中这样做:

observe({
  click_index <- input$selected_point
  updateNumericInput(session, "numeric1", value=click_index)
})

我的gui中的numericInput是:

numericInput("numeric1", "Clicked point index :", value=0)