Začněte nyníZačněte zdarma

Rozložení se záložkami

Zobrazování většího množství tabulek a grafů na jedné stránce může působit chaoticky a rozptylovat uživatele aplikace. V takových případech se hodí rozložení se záložkami, které umožňuje zobrazit různé výstupy jako samostatné záložky.

V tomto cvičení vezmeš Shiny aplikaci s postranním panelem z předchozího cvičení a upravíš ji tak, aby používala záložky. Toto cvičení ti také názorně ukáže, jak snadno lze v Shiny přepínat mezi různými rozloženími pomocí jen pár úprav v kódu.

Výsledná aplikace by měla vypadat takto:

An app where the name selector appears in the left sidebar, while the graph and table appear as tabs on the right in the main panel

Toto cvičení je součástí kurzu

Tvorba webových aplikací se Shiny v R

Zobrazit kurz

Pokyny k cvičení

  • Uprav rozložení aplikace tak, aby se výběr jména zobrazoval v postranním panelu a graf s tabulkou jako samostatné záložky na pravé straně. Nezapomeň záložky pojmenovat!

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput('name', 'Select Name', top_trendy_names$name)
    ),
    mainPanel(
      # MODIFY CODE BLOCK BELOW: Wrap in a tabsetPanel
        # MODIFY CODE BELOW: Wrap in a tabPanel providing an appropriate label
        plotly::plotlyOutput('plot_trendy_names'),
        # MODIFY CODE BELOW: Wrap in a tabPanel providing an appropriate label
        DT::DTOutput('table_trendy_names')
    )
  )
)

server <- function(input, output, session){
  # Function to plot trends in a name
  plot_trends <- function(){
     babynames %>% 
      filter(name == input$name) %>% 
      ggplot(aes(x = year, y = n)) +
      geom_col()
  }
  output$plot_trendy_names <- plotly::renderPlotly({
    plot_trends()
  })
  
  output$table_trendy_names <- DT::renderDT({
    babynames %>% 
      filter(name == input$name)
  })
}

shinyApp(ui = ui, server = server)
Upravit a spustit kód