library(shiny)
#화면 로직 - 화면에 무엇을 보여주고 어떻게 배치 할 것인지?
ui <- fluidPage(
sidebarLayout(
#화면 좌측 패널
sidebarPanel(
#콤보박스 2개 추가
selectInput(inputId="var_x", "Select a Variables of X :",
choices = c("year","lifeExp","pop","gdpPercap")
),
selectInput(inputId="var_y","Select a Variables of Y :",
choices = c("year","lifeExp","pop","gdpPercap")
)
),
#화면 우측 패널
mainPanel(
#그래프 출력 항목 추가
plotOutput(outputId = "scatterPlot")
)
)
)
#서버 로직 - 화면에서 받은 입력으로 데이터를 어떻게 구성해서 반영할 것인가?
server <- function(input, output) {
library(gapminder)
#콤보박스의 입력값을 받아 gapminder의 산점도를 그려 결과를 지정한다.
output$scatterPlot <- renderPlot({
plot(gapminder[ , c(input$var_x, input$var_y)])
})
}
#Shiny 앱 실행
shinyApp(ui = ui, server = server)
