对于将来来到这里的任何人,这是我在 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
。
在交互式 rmarkdown 文档中
---
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
。