悬停工具在 rBokeh 中不起作用

hover tool not working in rBokeh

我正在尝试使用 rBokeh 制作一个 scatter/barplot。除 hover 工具外,一切正常,我按照示例实现了该工具。这是我的代码:

output$sig_plot <- rbokeh::renderRbokeh({
  display_data <- get_summary_data()
  display_data <- na.omit(display_data)        

  display_data[
    , interaction := apply(.SD, 1, paste, collapse=' ✕ '), 
    .SDcols=input$covariate_cols]

  display_data[, LL := faults_asset_normalized - std_err]
  display_data[, UL := faults_asset_normalized + std_err]

  print(display_data)

  display_data <- data.frame(display_data) # just in case it's required

  return(rbokeh::figure(height = get_plot_height()
                        , tools = c("pan", "wheel_zoom", "box_zoom"
                                    , "resize", 'hover'
                                    , "reset", "save")) %>%
           ly_segments(x0 = LL, y0 = interaction, x1 = UL, y1 = interaction,
                       data = display_data, width = 2) %>%
           ly_points(faults_asset_normalized, interaction, glyph = 16, size = 8,
                     data = display_data
                     , hover = c(interaction, faults_asset_normalized, N, std_err))
  )
})

print 语句的输出(截断):

       model thrPos faults_asset_normalized    N      std_err   interaction          LL          UL
  1: SD70ACE    T 5             0.008353259  519 0.0011565156 SD70ACE ✕ T 5 0.007196743 0.009509775
  2: SD70ACE    T 4             0.015008524  563 0.0021099450 SD70ACE ✕ T 4 0.012898579 0.017118469
  3: SD70ACE    T 1             0.014298873 1502 0.0014975474 SD70ACE ✕ T 1 0.012801326 0.015796421
  4: SD70ACE    T 6             0.010467797  594 0.0014118843 SD70ACE ✕ T 6 0.009055913 0.011879681
  5: SD70ACE    T 3             0.018653184  700 0.0031824597 SD70ACE ✕ T 3 0.015470725 0.021835644

为悬停使用新的 data.frame,它完全符合您的要求,并将其作为悬停参数传递。这通常有效。您没有提供可重新创建的代码位,但我想它会是这样的:

hover = subset(display_data, select= c("interaction", "faults_asset_normalized", "N", "std_err"))
figure() %>% ly_points(...,hover=hover) %>% ...

他们正在调整 rbokeh 在即将发布的版本中处理参数的方式,以更好地处理边缘情况。

devtools::install_github("bokeh/rbokeh@dev") 使悬停工作。