使用ggvis'使用on =" hover"工具提示功能,当光标离开数据点触发时工具提示消失:
mtcars %>% ggvis(~wt, ~mpg) %>%
layer_points() %>%
add_tooltip(function(df) df$wt, on = "hover")
on ="点击"在我看来,行为并不直观。单击数据元素将打开相应的工具提示。但是,只能通过在图中打开另一个工具提示再次关闭它。
mtcars %>% ggvis(~wt, ~mpg) %>%
layer_points() %>%
add_tooltip(function(df) df$wt, on = "click")
当我再次点击数据点或工具提示之外的任何地方时,我希望工具提示再次关闭。
是否可以模仿这种行为?我已经尝试了hide_tooltip
,但无法弄清楚如何从交互式ggvis图中获得闪亮的会话。
更新2015-01-15
@wch将更新ggvis 0.5
(https://github.com/rstudio/ggvis/issues/250)中的行为。我会在它被释放时检查。
答案 0 :(得分:1)
对于将来来到这里的任何人来说,这是我在GitHub问题中给出的答案:你可以添加一个简单的JavaScript行,只要点击图表就会关闭工具提示。
library(shiny)
library(ggvis)
jscode <-
"$(function() {
$('#ggvis_plot').click(function(){ $('#ggvis-tooltip').hide(); });
})
"
shinyApp(
ui = fluidPage(
tags$script(jscode),
uiOutput("ggvis_ui"),
ggvisOutput("ggvis_plot")
),
server = function(input, output, session) {
mtcars %>%
ggvis(~wt, ~mpg) %>%
layer_points() %>%
add_tooltip(function(df) df$wt, on = "click") %>%
bind_shiny("ggvis_plot", "ggvis_ui")
}
)
请注意,您传递给ggvisOutput()
函数的ID必须与JavaScript行中使用的ID匹配,在这种情况下,我使用了id = ggvis_plot
。
---
title: "ggvis Hide Tooltip on Click"
runtime: shiny
output:
html_document
---
<script>
$(function() {
$('#ggvis_plot').click(function(){ $('#ggvis-tooltip').hide(); });
})
</script>
```{r echo = FALSE}
library(ggvis)
ggvis_plot <- reactive({
mtcars %>% ggvis(~wt, ~mpg) %>%
layer_points() %>%
add_tooltip(function(df) df$wt, on = "click")
})
invisible(bind_shiny(ggvis_plot, 'ggvis_plot'))
ggvisOutput('ggvis_plot')
```
请注意,您传递给ggvisOutput()
函数的ID必须与JavaScript行中使用的ID匹配,在这种情况下,我使用了id = ggvis_plot
。