2016-11-24 1 views
1

반짝이는 app에 scatterd3 (package scatterd3) 플롯이 있는데, 플롯 포인트를 클릭하면 정보를 전달하는 방법을 알 수 없습니다. 이 웹 사이트는 그것을 설명하는 것 같다하지만 난 그냥 그것을 얻을 수 없습니다 https://cran.r-project.org/web/packages/scatterD3/vignettes/introduction.html#javascript-callback-on-clicking-pointR Shiny get scatterd3 from click 정보

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

클릭에 대한 정보가 저장되는 위치를 알고 계십니까?

verbatimTextOutput("scatterPlot$index") 

어떤 아이디어 : 나는 이런 식으로 뭔가 반짝이 GUI에서 부를 수있는 가정? 건배

답변

3

click_callbackclick_callbackclick_callback JavaScript 함수는 플롯 고유 ID 및 클릭 된 포인트 인덱스의 두 인수로 호출됩니다. Shiny.onInputChange을 사용하여 Shiny input 슬롯을 값에 바인드하고 데이터를 얻을 수 있습니다. 버그의 경우에, 그래서 scatterD3에서 이것은 아주 최근의 기능을

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

:

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

당신은 같은 것을 할 수 있어야 다음 click_callback 기능을 예를 들어

, 또는 기능이 누락 된 경우 open an issue on Github으로 주저하지 마십시오.

+0

감사합니다, 나는거야 내 질문에 대한 답장에 몇 가지 세부 정보 추가 – Mark

1

위의 juba의 답변은 많은 도움이되었습니다. 나는 그렇게 내 서버에서이 같은 그것에 대해 갔다하는 numericInput 필드를 업데이트하고 싶었 :

내 GUI 내 numericInput이었다
observe({ 
    click_index <- input$selected_point 
    updateNumericInput(session, "numeric1", value=click_index) 
}) 

: 나를 분류있어

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