Lecture 8: Shiny (その2)
shinyで実装
shinyのロード
library(shiny)
uiコントローラーの動的制御
server.R内に記述
output$controlXmax <- renderUI({
name <- input$univName
freq <- sort(univ[, colnames(univ) == name], decreasing = TRUE)
freq <- freq[freq > 0]
sliderInput(inputId = "xmax", label = "Scale size: ", min = 10, max = length(freq),
value = 10, step = 10)
})
ui.R
uiOutput("controlXmax"),
ui.Rの表示の制御
チエックボックスがONの状態のときに表示
conditionalPanel(condition = "input.Zipf == true",uiOutput("controlK")),
パネルの追加(ui.R)
mainPanel(tabsetPanel(tabPanel("Frequency Distribution", plotOutput("freqDist")),
tabPanel("Frequency Barplot", plotOutput("freqBar"))))
棒グラフの描画(ui.R)
output$freqBar <- renderPlot({
name <- input$univName
tmp <- univ[univ[, colnames(univ) == name] > 0, ]
tmp <- tmp[order(tmp[, colnames(univ) == name], decreasing = TRUE), ]
title = "Word Frequency Barplot"
xlabel = "Word"
ylabel = "Frequency"
barplot(tmp[, colnames(tmp) == name], names = rownames(tmp), las = 3, xlim = c(input$range[1],
input$range[2]))
})
Barplotとの描画範囲を動的制御
output$barXControls <- renderUI({
name <- input$univName
tmp <- univ[univ[, colnames(univ) == name] > 0, ]
tmp <- tmp[order(tmp[, colnames(univ) == name], decreasing = TRUE), ]
vmax <- nrow(tmp)
sliderInput("range", "Barplot: Xaxis Range", min = 1, max = vmax, value = c(1,
vmax), step = 1)
})