58 votes

Utilisez D3 et Shiny pour implémenter `identifier ()` dans R

J'ai demandé à une question sur la façon de tracer de manière dynamique en fonction des interactions de l'utilisateur, dont la solution fonctionne très bien sur ma machine.

Maintenant, je veux faire une version en ligne et l'héberger avec Brillant.

J'ai essayé de mettre le code en server.R et invoquer l' iden() fonction à l'intérieur d' reactivePlot(), mais la part des identify() ne prend pas effet.

Donc, tous les conseils sur cette tâche?

2voto

mgriebe Points 581

Essayez cet article de la galerie. Il utilise ggvis pour atteindre cet objectif en brillant. Si la galerie disparaît, voici un code minimal produisant une info-bulle, similaire à identify() , à l’aide de ggvis.

 require(ggvis)
mtcars$model<-rownames(mtcars)
mtcars %>% ggvis(~wt, ~mpg,key:=~model) %>% 
  layer_points() %>% 
  add_tooltip(function(df) df$model)
 

Et, un exemple plus complet, mais toujours minimal:

 require(shiny)
require(ggvis)
mtcars$model<-rownames(mtcars)

shinyApp(
  ui = fluidPage(
    sidebarLayout(
      sidebarPanel(h2("GGVis to Identify Points")),
      mainPanel(ggvisOutput("carsplot"))
    )
  ), 
  server = function(input, output) {
    vis <- reactive({ 
      mtcars %>% ggvis(~wt, ~mpg,key:=~model) %>% 
        layer_points() %>% 
        add_tooltip(function(df) df$model)
    })
    vis %>% bind_shiny("carsplot")
  }

)
 

1voto

Paige Lo Points 409

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X