簡體   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