繁体   English   中英

在ggvis图中隐藏使用on =“click”初始化的工具提示

[英]Hide tooltip initialized with on=“click” in ggvis plot

当使用带有on =“hover”的ggvis'工具提示功能时,当光标离开数据点触发器时,工具提示会消失:

mtcars %>% ggvis(~wt, ~mpg) %>% 
layer_points() %>% 
add_tooltip(function(df) df$wt, on = "hover")

在我看来,on =“click”行为并不直观。 单击数据元素将打开相应的工具提示。 但是,它只能通过在图中打开另一个工具提示再次关闭。

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 )。 我会在发布时检查回来。

对于将来来到这里的任何人来说,这是我在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM