r - ggvis 直方图工具提示,可识别垃圾箱中的元素

标签 r tooltip histogram ggvis

我想在 ggvis 直方图上创建一个工具提示,以显示该容器中元素的标识。一个例子:

id <- gl(100, 1)
value <- rnorm(100)
df <- data.frame(id, value)
df %>% ggvis(~value) %>% layer_histograms

我想要一个悬停工具提示,它可以提供该 bin 中包含的值的 id,但我不知道如何让 ggvis 为我提供此数据以在 add_tooltip 中使用。

谢谢!

更新:

当在大多数整数情况下对整数变量使用 r2evans 中的 tooltipFunc 时,它会在相邻 bin 工具提示上提供重复的 id。要纠正,只需将不等号更改为引用左闭区间(ggvis 中的默认值)。

tooltipFunc <- function(index, value) {
  function(x) {
    if (is.null(x)) return(NULL)
    else {
        paste(index[ (value >= x$xmin_ ) & (value < x$xmax_) ],
                  collapse=', ')
     }
  }
}

最佳答案

我在 RStudio 的 webinar 中看到了这个功能的演示今天早上。谢谢你的提问,我本来也想了解一下。以下是我的第一次尝试,但它显示了它的易用性和强大功能:

tooltipFunc <- function(index, value) {
    function(x) {
        if (is.null(x)) return(NULL)
        else {
            strwrap(
                paste(index[ (value >= x$xmin_ ) & (value <= x$xmax_) ],
                      collapse=', '),
                width = 30)
        }
    }
}

df <- data.frame(id=gl(100,1), value=rnorm(100))
df %>%
    ggvis(~value) %>%
    layer_histograms() %>% 
    add_tooltip(tooltipFunc(df$id, df$value), 'hover')

这显示了 bin 中包含的所有 $id。在本例中,x(传递给函数)是一个具有一行四列的 data.frame:$xmin_$xmax_$stack_upr_$stack_lwr_。因为该函数可能返回文本 HTML,所以对此采取一些自由并不难。

(这可以通过一个更简单的函数来完成,该函数假定存在 df data.frame,但我认为在当前的形式中,对于 future 的数据集来说,它的可扩展性稍强一些。)

关于r - ggvis 直方图工具提示,可识别垃圾箱中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25045863/

相关文章:

javascript - Chartjs 工具提示中的不同标签

python - 像plotly.express 中一样使用plotly.graph_objs 创建直方图

r - 绘制 r 中每连续 n 年的直方图

r - Bookdown:删除社交媒体链接?

r - 在 geom_boxplot (ggplot2) 中找到框的 x 坐标

r - 如何在 R 中的两个因素之间填充值?

r - 整理 Igraph 绘图

reactjs - 如何将文本左对齐。在 react 工具提示中?

jquery - 使用 jQuery 删除 title 属性会产生负面影响吗?

r - 在R ggplot中绘制计数直方图