以下は、ユーザーが列を選択し、選択した列の ggplot::histogram() をプロットできる基本的な光沢のあるアプリの機能コードです。
library(shiny)
# Define UI for application that draws a histogram
ui <- fluidPage(
titlePanel("ggplot"),
sidebarLayout(
sidebarPanel(
uiOutput("column_select")
),
mainPanel(plotOutput("plot"))
)
)
# Define server logic required to draw a histogram
server <- function(input, output){
dat <- reactive({iris})
output$column_select <- renderUI({selectInput("col", label = "column", choices = as.list(names(iris)), selected = "Sepal.Length")})
output$plot <- renderPlot({ggplot(dat(), aes_string(x = input$col)) +
geom_histogram()})
p <- ggplot(dat(), aes_string(x = input$col)) +
geom_histogram()
renderPlot
}
# Run the application
shinyApp(ui = ui, server = server)
ただし、renderPlot() 内から ggplot() 関数を削除できないのに、同じ結果が得られる理由がわかりません。私が試してみました:
p <- reactive({ggplot(dat(), aes_string(x = input$col)) +
geom_histogram()})
outputPlot <- renderPlot({p})
しかし、これではプロットが描画されません。
これには簡単な修正があると思いますが、これまでのところそれは私を逃れています。