串扰交互式滑块不适用于直方图

Crosstalk interactive slider not working with histogram

我想在 R 中使用串扰创建交互式直方图。具体来说,我想使用滑块 select 直方图上显示的数据。为此,我使用了以下代码:

shared_data <- highlight_key(mpg)

widgets <- bscols(
  widths = 12,
  filter_slider("displ", "displ", shared_data, ~displ))

bscols(widths = 10, widgets, 
  plot_ly(x = ~mpg$displ, type = "histogram",
          histnorm = "probability"))

这将创建直方图和交互式滑块。然而,滑块实际上并没有做任何事情。

我已经尝试使用另一段代码来执行此操作,但与之前的代码类似,它创建了直方图和无法过滤数据的滑块。

shared_data <- mpg %>%
  SharedData$new()

plot_ref <- plot_ly(x = ~mpg$displ, type = "histogram",
                    histnorm = "probability") %>%
  layout(title = "Reference Histogram (Displ)",
         xaxis = list(title = "Displ"),
         yaxis = list(title = "Percentage (%)"))

bscols(widths = 10,
       list(filter_slider(id = "slider_ap", label = "Displ",
                          sharedData = shared_data, column = ~displ),
            plot_ref))

谁能解释一下上面的代码有什么问题?我在某处读到串扰交互性并未针对直方图进行专门优化,这可能是它不起作用的原因吗?非常感谢任何帮助!

SharedData的目的是分享数据。你调用plot的时候没有使用共享数据,所以filter没有办法匹配plot

查看:

shared_data <- mpg %>%
  SharedData$new()

plot_ref <- plot_ly(data = shared_data, # <- share it
                    x = ~displ, type = "histogram",
                    histnorm = "probability") %>%
  layout(title = "Reference Histogram (Displ)",
         xaxis = list(title = "Displ"),
         yaxis = list(title = "Percentage (%)"))

bscols(widths = 10,
       list(filter_slider(id = "slider_ap", label = "Displ",
                          sharedData = shared_data, column = ~displ),
            plot_ref))