safe_ggplot: Safely render a 'ggplot' in Shiny application

Description Usage Arguments Value Examples

View source: R/safe_ggplot.R

Description

Safely render a ggplot in Shiny application

Usage

1
safe_ggplot(expr, data = NULL, session = shiny::getDefaultReactiveDomain())

Arguments

expr

Code to produce a ggplot object.

data

Argument passed to eval_tidy to evaluate expression.

session

Session object to send notification to.

Value

Output of ggplot_build.

Examples

 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
if (interactive()) {
  library(shiny)
  library(ggplot2)
  
  ui <- fluidPage(
    fluidRow(
      column(
        width = 3,
        selectInput(
          inputId = "var", 
          label = "Var:", 
          choices = c("Sepal.Width", "Do.Not.Exist")
        )
      ),
      column(
        width = 9,
        plotOutput(outputId = "plot")
      )
    )
  )
  
  server <- function(input, output, session) {
    
    output$plot <- renderPlot({
      p <- ggplot(iris) +
        geom_point(aes_string("Sepal.Length", input$var))
      safe_ggplot(p)
    })
    
  }
  
  shinyApp(ui, server)
}

dtsonipmph/esquisse documentation built on Sept. 14, 2020, 9:34 a.m.