前面我们介绍了shiny这个包的基础用法,今天我们给大家介绍下如何设定各个元素的布局。其中用到了很多函数我们在此进行一一的描述,真正让大家体验下R语言中的网页前端。首先我们看下页面的类型:
1. fixedPage 创建一个具有最大固定大小网页。
2. fluidPage 创建一个自动调整的网页。
那么以上这两个函数有什么区别呢,我们用一个实例给大家演示下:
ui <- fixedPage(
#Application title
titlePanel("Hello Shiny!"),
sidebarLayout(
#Sidebar with a slider input
sidebarPanel(
sliderInput("obs",
"Number ofobservations:",
min = 0,
max = 1000,
value = 500)
),
#Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
)
)
)
# Server logic
server <- function(input, output) {
output$distPlot <- renderPlot({
hist(rnorm(input$obs))
})
}
# Complete app with UI and servercomponents
shinyApp(ui, server)
接下来看下对应的结果:
fixedPage页面:
fluidPage页面:
接下来我们看下fluidPage网页中细节化的元素布局操作函数:
1. fluidRow 页面中的行,每添加一个代表对网页分割多一行。
2. column 指的分割的列,此值其实固定大小,一共将网页分为12列,其width取值也就意味着只能介于1-12之间的整数。
3. tabPanel属于tabsetPanel中的元素。具体参数title也可以作为ID使用,第二个元素指的是需要绘制的UI的内容。
4. tabsetPanel中最主要的参数是type,选择tabs,默认的绘制形状;选择pills则是带有选择背景的tabPanel。如下图:
Tabls:
Pills:
5. navlistPanel竖着的tabPanel。
ui=fluidPage(
titlePanel("Application Title"),
navlistPanel(
"Header",
tabPanel("First","content1"),
tabPanel("Second","content2"),
tabPanel("Third","content3")
)
)
server <- function(input, output) {
}
# Complete app with UI and servercomponents
shinyApp(ui, server)
6. sidebarLayout利用sidebarPanel和mainPanel进行页面布局。具体实例如下:
ui <- fluidPage(
#Application title
titlePanel("Hello Shiny!"),
sidebarLayout(
#Sidebar with a slider input
sidebarPanel(
sliderInput("obs",
"Number ofobservations:",
min = 0,
max = 1000,
value = 500)
),
#Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
)
)
)
# Server logic
server <- function(input, output) {
output$distPlot <- renderPlot({
hist(rnorm(input$obs))
})
}
# Complete app with UI and servercomponents
shinyApp(ui, server)
以上的函数就可以完成网页的布局设置,从而让我们随心所欲的摆放我们想要放的元素,构成漂亮的布局效果。
欢迎大家学习交流!