나는 Sankey 음모가있는 R 반짝이 대시 보드를 만들려고합니다. 내가 클릭 한 노드의 이름을 추출 할 수 있기를 원합니다.R 클릭 이벤트가있는 반짝이는 음모
Sankey 다이어그램을 플롯 할 수있는 라이브러리가 networkD3
및 googleVis
입니다. networkD3
같은 라이브러리에 구현 된 다른 유형의 플롯이 이러한 기능 (forceNetwork()
)과 함께 제공 되더라도 클릭 이벤트를 모니터링 할 수 있습니다.
googleVis
패키지에는 sankey 플롯을 만들 수있는 함수 gvisSankey
이 있으며 옵션으로 캡처 할 수있는 gvis.listener.jscode
매개 변수를 전달할 수 있습니다.
JS에 익숙하지 않아서 내가 원하는 것을 얻으려고 애쓰는 것이 두렵습니다.
library(shiny)
library(googleVis)
datSK <- data.frame(From=c(rep("A",3), rep("B", 3)),
To=c(rep(c("X", "Y", "Z"),2)),
Weight=c(5,7,6,2,9,4))
SERVER <- function(input, output, session){
sankey_click <- sprintf("var text = chart.getSelection();
Shiny.onInputChange('%s', text.toString())", session$ns('text'))
output$sankey <- renderGvis(
gvisSankey(datSK, from="From", to="To", weight="Weight",
options=list(gvis.listener.jscode = sankey_click,
sankey = "{node: {interactivity: true, width: 50}}"))
)
click_event <- reactive({input$text})
output$click <- renderText(click_event())
}
UI <- fluidPage(
fluidRow(column(12, htmlOutput("sankey"))),
fluidRow(column(12, verbatimTextOutput("click")))
)
shinyApp(ui = UI, server = SERVER)
당신이 볼 수 있듯이, 내가 할 모든 object Object
입니다 : 이것은 내가 얻을 수 있었다 얼마나 멀리이다.
미리 감사드립니다.
만약 내가 할 수 있으면이 답변을 100 upvotes 줄 줄, 감사합니다! 당신은 나에게 답을주지 않았고, 미래에 비슷한 문제를 해결하는 방법을 보여 주셨습니다. – IVR