2017-11-28 4 views
0

Hier ist ein einfaches dygraph:Erste Punktkoordinaten durch einen dygraph innerhalb RStudio Anzeigebereich klicken

library(dygraphs) 
dg <- dygraph(ldeaths) 
dg 

Wie Sie mit der Maus bewegt sich über die Serie, werden die einzelnen Werte angezeigt. Ich möchte auf einen Punkt klicken und die x-Koordinate (d. H. Das Datum) auf der Konsole anzeigen lassen oder in einer Variablen speichern. Wie kann ich das erreichen? Sieht so aus, als ob die Antwort mit dyCallbacks() zu tun hat, aber ich kann es nicht wirklich herausfinden. z.B.

> d <- dg %>% dyCallbacks(pointClickCallback = 'function(e, p) {return 
> p.x;}') d$x$attrs$pointClickCallback [1] "function(e, p) {return 
> p.x;}" attr(,"class") [1] "JS_EVAL" 

Vielen Dank im Voraus,
Fabio

Antwort

0

Ich weiß nicht viel über Javascript, aber wenn Sie offen glänzend sind, können Sie bekommen, was Sie wollen. Mit der Klick-Eingabe-Bindung von können Sie die x-Variable drucken und mit Shiny können Sie es auch einfach speichern, wenn Sie möchten. Hier ist ein minimales Beispiel, was Sie tun können:

ui = fluidPage(
    mainPanel(
    dygraphOutput("dygraph"), 
    br(), 
    textOutput("clicked", inline = TRUE) 
) 
) 


server = function(input, output) { 


    output$dygraph <- renderDygraph({ 
    dygraph(ldeaths) 
    }) 

    output$clicked <- renderText({ 
    strftime(req(input$dygraph_click$x), "%d %b %Y") 
    }) 

    clickedPr <- reactive({ 
    print(strftime(req(input$dygraph_click$x), "%d %b %Y")) 
    }) 

    observeEvent(input$dygraph_click$x,{ 

     write.csv(clickedPr(), "test.csv") 
    }) 


} 

shinyApp(ui = ui, server = server) 
Verwandte Themen