开始使用免费开始使用

添加布局

正如您在前面章节中所见,在 Shiny 应用中使用布局非常重要,有助于组织界面并提升可用性。

当前应用的对象很少(一个标题、两个输入、一个词云输出),即使没有布局也还能管理。不过,在接下来的练习中应用会不断扩展,使用侧边栏布局会更有益。尽早为应用添加布局是个好主意,因为将新的 Shiny 界面元素放入既有布局比之后重排一个更大且无结构的应用要容易得多。

与 Shiny 应用和其他交互式应用的常见做法类似,我们会把输入控件放在较小的侧边栏中,而把主要输出(词云)放在更大的主面板中。

本练习是课程的一部分

案例研究:使用 R 的 Shiny 构建 Web 应用

查看课程

练习说明

接下来请为当前的 Shiny 应用添加一个侧边栏布局。除布局结构外,不需要添加新的界面元素。具体要求:

  • 在 UI 中添加一个侧边栏布局。
  • 在该侧边栏布局内,定义一个侧边栏面板用于放置两个输入控件。
  • 同样在该侧边栏布局内,定义一个主面板用于放置词云输出(第 12 行)。

交互式实操练习

通过完成这段示例代码来试试这个练习。

ui <- fluidPage(
  h1("Word Cloud"),
  # Add a sidebar layout to the UI
  ___(
    # Define a sidebar panel around the inputs
    ___(
      numericInput("num", "Maximum number of words",
                   value = 100, min = 5),
      colourInput("col", "Background color", value = "white")
    ),
    # Define a main panel around the output
    ___(
      wordcloud2Output("cloud")
    )
  )
)

server <- function(input, output) {
  output$cloud <- renderWordcloud2({
    create_wordcloud(artofwar,
                     num_words = input$num, background = input$col)
  })
}

shinyApp(ui = ui, server = server)
编辑并运行代码