ПочатиПочніть безкоштовно

Додаємо структуру до вашого застосунку

Макети в Shiny допомагають надати застосунку структуру, розміщуючи елементи в потрібних місцях.

Макет із боковою панеллю, створений за допомогою функції sidebarLayout(), забезпечує базову двоколонну структуру з меншою боковою панеллю ліворуч і більшою головною панеллю праворуч.

Функція макета з боковою панеллю приймає два аргументи: sidebarPanel() і mainPanel(). Кожна з цих панелей може містити довільне поєднання текстових/HTML‑елементів — подібно до того, як ви можете поєднувати такі елементи всередині fluidPage().

Ця вправа є частиною курсу

Case Studies: створення вебзастосунків із Shiny в R

Переглянути курс

Інструкції до вправи

Ваше завдання — додати до наявного застосунку макет із боковою панеллю так, щоб елементи введення були ліворуч, а результати — у головній панелі. Зокрема, потрібно:

  • Визначити інтерфейс користувача (UI) для застосунку Shiny.
  • Додати на сторінку макет із боковою панеллю.
  • Додати до макета бокову панель і розмістити в ній елементи введення та текст.
  • Додати до макета головну панель і розмістити в ній графік і таблицю.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Load the shiny package
library(shiny)

# Define UI for the application
ui <- ___(
  # Add a sidebar layout to the application
  ___(
    # Add a sidebar panel around the text and inputs
    ___(
      h4("Plot parameters"),
      textInput("title", "Plot title", "Car speed vs distance to stop"),
      numericInput("num", "Number of cars to show", 30, 1, nrow(cars)),
      sliderInput("size", "Point size", 1, 5, 2, 0.5)
    ),
    # Add a main panel around the plot and table
    ___(
      plotOutput("plot"),
      tableOutput("table")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    plot(cars[1:input$num, ], main = input$title, cex = input$size)
  })
  output$table <- renderTable({
    cars[1:input$num, ]
  })
}

# Run the application
shinyApp(ui = ui, server = server)
Редагувати та запускати код