R语言图形交互基础二(页面布局)

2019-07-31 14:44:10 浏览数 (1)

前面我们介绍了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)

以上的函数就可以完成网页的布局设置,从而让我们随心所欲的摆放我们想要放的元素,构成漂亮的布局效果。

欢迎大家学习交流!

0 人点赞