## ----setup, include=FALSE----------------------------------------------------- knitr::opts_chunk$set(echo = TRUE) library(manipulateWidget) ## ----eval=FALSE--------------------------------------------------------------- # manipulateWidget( # myPlotFun(country), # country = mwSelect(c("BE", "DE", "ES", "FR")) # ) ## ----eval=FALSE--------------------------------------------------------------- # manipulateWidget( # myPlotFun(distribution, range, title), # distribution = mwSelect(choices = c("gaussian", "uniform")), # range = mwSlider(2000, 2100, value = c(2000, 2100), label = "period"), # title = mwText() # ) ## ----eval=FALSE--------------------------------------------------------------- # help(package = "manipulateWidget") ## ----combine, warning=FALSE, out.width="100%"--------------------------------- library(dygraphs) plotRandomTS <- function(id) { dygraph(data.frame(x = 1:10, y = rnorm(10)), main = paste("Random plot", id)) } combineWidgets(plotRandomTS(1), plotRandomTS(2)) ## ----combine_complex_layout, out.width="100%"--------------------------------- combineWidgets( ncol = 2, colsize = c(2, 1), plotRandomTS(1), combineWidgets( ncol = 1, plotRandomTS(2), plotRandomTS(3), plotRandomTS(4) ) ) ## ----combine_content, , out.width="100%", out.height=400---------------------- combineWidgets( plotRandomTS(1), plotRandomTS(2), plotRandomTS(3), plotRandomTS(4), title = "Four random plots", header = "Here goes the header content. It can include html code.", footer = "Here goes the footer content.", leftCol = "
left column
", rightCol = "
right column
" ) ## ----eval=FALSE--------------------------------------------------------------- # mydata <- data.frame( # timeId = 1:100, # series1 = rnorm(100), # series2 = rnorm(100), # series3 = rnorm(100) # ) # manipulateWidget( # dygraph(mydata[range[1]:range[2], c("timeId", series)], main = title), # range = mwSlider(1, 100, c(1, 100)), # series = mwSelect(c("series1", "series2", "series3")), # title = mwText(), # .compare = list( # title = list("First chart", "Second chart"), # series = NULL # ) # ) ## ----eval = FALSE------------------------------------------------------------- # mydata <- data.frame(x = 1:100, y = rnorm(100)) # manipulateWidget( # dygraph(mydata[range[1]:range[2], ], # main = title, xlab = xlab, ylab = ylab), # range = mwSlider(1, 100, c(1, 100)), # "Graphical parameters" = mwGroup( # title = mwText("Fictive time series"), # xlab = mwText("X axis label"), # ylab = mwText("Y axis label") # ) # ) ## ----eval=FALSE--------------------------------------------------------------- # mydata <- data.frame(x = 1:100, y = rnorm(100)) # # myPlot <- function(type, lwd) { # if (type == "points") { # plot_ly(mydata, x= ~x, y = ~y, type = "scatter", mode = "markers") # } else { # plot_ly(mydata, x= ~x, y = ~y, type = "scatter", mode = "lines", # line = list(width = lwd)) # } # } # # manipulateWidget( # myPlot(type, lwd), # type = mwSelect(c("points", "lines"), "points"), # lwd = mwSlider(1, 10, 1, .display = type == "lines") # ) ## ----dynamic_input, eval=FALSE------------------------------------------------ # colMax <- apply(mtcars, 2, max) # # plotCar <- function(carName) { # carValues <- unlist(mtcars[carName, ]) # carValuesRel <- carValues / colMax # plot_ly() %>% # add_bars(x = names(mtcars), y = carValuesRel, text = carValues, # hoverinfo = c("x+text")) # } # # carChoices <- split(row.names(mtcars), mtcars$cyl) # # str(carChoices) # ## $ 4: chr [1:11] "Datsun 710" "Merc 240D" "Merc 230" "Fiat 128" ... # ## $ 6: chr [1:7] "Mazda RX4" "Mazda RX4 Wag" "Hornet 4 Drive" "Valiant" ... # ## $ 8: chr [1:14] "Hornet Sportabout" "Duster 360" "Merc 450SE" "Merc 450SL" ... # # manipulateWidget( # plotCar(car), # cylinders = mwSelect(c("4", "6", "8")), # car = mwSelect(choices = carChoices[[cylinders]]) # ) ## ----eval=FALSE--------------------------------------------------------------- # lon <- rnorm(10, sd = 20) # lat <- rnorm(10, sd = 20) # # myMapFun <- function(radius, color, initial, session, outputId) { # if (initial) { # # Widget has not been rendered # map <- leaflet() %>% addTiles() # } else { # # widget has already been rendered # map <- leafletProxy(outputId, session) %>% clearMarkers() # } # # map %>% addCircleMarkers(lon, lat, radius = radius, color = color) # } # # manipulateWidget(myMapFun(radius, color, .initial, .session, .output), # radius = mwSlider(5, 30, 10), # color = mwSelect(c("red", "blue", "green"))) #