58

我问了一个关于如何根据用户交互动态绘图的问题,他的解决方案在我的机器上运行良好。

现在我想制作一个在线版本并使用Shiny托管它。

我尝试将代码放入server.R并调用iden()里面的函数reactivePlot(),但是部分identify()没有生效。

那么,关于这个任务的任何提示?

4

1 回答 1

2

试试这个画廊项目。 它使用 ggvis 来实现这个目标。万一画廊消失了,这里有一些最小的代码会产生一个工具提示,类似于identify(),使用 ggvis。

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

而且,一个更完整但仍然最小的例子:

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

)
于 2014-09-19T19:24:47.857 回答