shiny学习第二课——创建用户界面
布局
shiny 采用fluidPage函数来构建一个界面,它可以随着用户浏览器窗口的大小自动进行调整。
通过在fluidPage函数中放置元素(如文本,图片或者其他HTML原件),可以修改用户界面的布局。
用来创建shiny App的最低限度的代码如下:
library(shiny)
ui <- fluidPage(
)
server <- function(input, output){
}
shinyApp(ui = ui ,server = server)
这段代码的结果是创建一个空的app(如下图),这个空的app的用户界面是空的,很适合用于开始这段课程。
如果我们想为这个空空如也的用户界面加上标题和侧边栏,则上方的代码进行如下的变化:
ui <- fluidPage(
#添加标题栏
titlePanel("title panel"),
#添加侧边栏面板
sidebarLayout(
sidebarPanel("sidebar panel"),#侧边栏面板
mainPanel("main panel")#主面板
)
)
虽然已经在代码中注释了添加这些语句的用处,但还是让我们先看看界面的变化:
titlePanel 和sidebarLayout这两个元素在fluidPage的添加元素中是最为常见的。它们创建了一个含有侧边栏的基础app。
其中sidebarLayout经常包含两个元素:
- sidebarPanel 功能输出,
- mainPanel功能输出
这两个功能将内容放置在侧边栏面板或者主面板上。
在默认情况下,侧边栏面板会放置在app界面的左边,你也可以将其转移到右侧,只需要对sidebarLayout 赋予一个选项参数position = "right"
ui <- fluidPage(
titlePanel("title panel"),
sidebarLayout(
position = "right",
sidebarPanel("sidebar panel"),
mainPanel("main panel")
)
)
位置选项的参数只有left和right是可供选择的。因为常用ggplot,我尝试了一下“top”,报错如下:
note :更多用法详询shiny application layout guide(shiny学习笔记三就决定是你了!)。
HTML 内容
你可以为APP随意添加内容,只需要将其放置于*Panel功能中。就拿上面的例子来说,app的每一个Panel都有自己的字符串,说字符串是装逼行为,其实就是每一个panel