-
Notifications
You must be signed in to change notification settings - Fork 1
/
ModularRbokehMultipleScatter.R
43 lines (30 loc) · 1.26 KB
/
ModularRbokehMultipleScatter.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
## require() for required libraries for module
require(rbokeh)
# MODULE UI
RbokehMultipleScatterUI <- function(id) {
ns <- NS(id)
## Ui Outputs Here from server below
rbokeh::rbokehOutput(ns("plot1"))
## for mutliple Output use fillCol/fillRow(), or flowLayout() wrapped around Outputes
}
# MODULE Server
RbokehMultipleScatterServer <- function(input, output, session, data, ...) {
## Place server code here to be called by callModule
## place whatever inputs needed in function call
output$plot1 <- rbokeh::renderRbokeh({
tools <- c("pan", "wheel_zoom", "box_zoom", "box_select", "reset")
nms <- names(grep("numeric", sapply(data(), class), value = TRUE))
grp <- names(grep("factor|character", sapply(data(), class), value = TRUE))[1]
p <- length(nms)
splom_list <- lapply(nms[2 : p], function(nam) {
figure(width = 200, height = 200, tools = tools,
xlab = "Petal.Width", ylab = nam) %>%
ly_points(nms[1], nam, data = data(),
color = "black", size = 5, legend = FALSE,
hover = lapply(names(data()), paste))
})
grid_plot(splom_list, ncol = 4, same_axes = FALSE, link_data = TRUE)
})
## use reactive and observe elements
## render elements
}