我问了一个关于如何根据用户交互动态绘图的问题,他的解决方案在我的机器上运行良好。
现在我想制作一个在线版本并使用Shiny托管它。
我尝试将代码放入server.R
并调用iden()
里面的函数reactivePlot()
,但是部分identify()
没有生效。
那么,关于这个任务的任何提示?
试试这个画廊项目。 它使用 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")
}
)