library(ggvis)
library(shiny)

set.seed(1233)
cocaine <- cocaine[sample(1:nrow(cocaine), 500), ]

Two linked plots. Brushing in the scatter plot will update the histogram.

cocaine$id <- seq_len(nrow(cocaine))

lb <- linked_brush(keys = cocaine$id, "red")

cocaine %>%
  ggvis(~weight, ~price, key := ~id) %>%
  layer_points(fill := lb$fill, fill.brush := "red", opacity := 0.3) %>%
  lb$input()

# A subset of cocaine, of only the selected points
selected <- lb$selected
cocaine_selected <- reactive({
  cocaine[selected(), ]
})

cocaine %>%
  ggvis(~potency) %>%
  layer_histograms(width = 5, boundary = 0) %>%
  add_data(cocaine_selected) %>%
  layer_histograms(width = 5, boundary = 0, fill := "#dd3333")

A summary of the selected points:

renderPrint(
  summary(cocaine_selected())
)


rstudio/ggvis documentation built on Feb. 5, 2024, 9:13 p.m.