使用 D3 和 Shiny 在 R 中实现 `identify()`
Posted
技术标签:
【中文标题】使用 D3 和 Shiny 在 R 中实现 `identify()`【英文标题】:Use D3 and Shiny to implement `identify()` in R 【发布时间】:2012-11-26 19:05:03 【问题描述】:我问a question如何根据用户交互动态绘图,谁的解决方案 在我的机器上运行良好。
现在我想制作一个在线版本并使用Shiny 托管它。
我试过把代码放到server.R
里面,调用reactivePlot()
里面的iden()
函数,但是identify()
的部分没有生效。
那么,关于这个任务有什么提示吗?
【问题讨论】:
您是否尝试使用 rCharts 包从 R 创建 javascript“图表”?这很容易嵌入到闪亮的应用程序中。 @StéphaneLaurent 我注意到了这个包,但是这个问题是在它发明之前提出的。 我很确定我昨天在 Timely Portfolio blog 上看到了一个交互式 ggplot,但我今天再也找不到它了。 【参考方案1】:试试这个gallery item. 它使用 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")
)
【讨论】:
以上是关于使用 D3 和 Shiny 在 R 中实现 `identify()`的主要内容,如果未能解决你的问题,请参考以下文章
在 R Shiny 中实现 CRUD 工作流的最简洁方法是啥?