2016-11-24 76 views
1

我在一個閃亮的應用程序中有一個scatterd3(包scatterd3)圖,我無法弄清楚如何在點擊繪製點之後傳遞信息返回閃亮。這個網站似乎可以解釋,但我不能得到它: https://cran.r-project.org/web/packages/scatterD3/vignettes/introduction.html#javascript-callback-on-clicking-pointR Shiny從scatterD3獲取點擊信息

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") 

任何想法? 乾杯

回答

3

click_callback JavaScript函數被調用時帶有兩個參數:plot唯一id和點擊索引。通過使用Shiny.onInputChange,您可以將Shiny 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

+0

謝謝,這讓我排序,我會添加一些細節來回答我的問題 – Mark

1

朱巴的答案幫了很大忙,見上文。 我想更新numericInput場,所以就這件事像這樣在我的服務器:

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

凡我在我的GUI numericInput是:

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