Rshiny网页制作

shiny是R中一款比较实用的R包,他能帮助你在没有掌握太多的css和html知识的情况下,轻松地制作一个高效编辑的网页应用。当然,shiny在当前主流语言python中也有应用。

接下来让我们一起来了解shiny包。

1.安装包

首先我们需要安装shiny包

install.packages("shiny")

2.基本构架

shiny app在使用过程中主要由两部分构成。

1.ui(用户交互界面制作)

2.server(服务器运行流程制作)

一般在使用过程习惯放在一个脚本中,当然看个人喜好,也可以分开哈

library(shiny)
ui<-fluidPage(
    ...
)
server<-function(input, output) {
    ...
}
shinyApp(ui,server)

ui的设计需要考虑网页的排版,主要包括文字、文件等信息的输入方式和位置,服务器运行流程中可控参数的调节方式和位置,网页过程或者最终需要展示或者下载的图表的区域。对于一些复杂的网页,需要考虑页面的切换等。

常用的一些输入包括fileInput、textInput、selectInput、numericInput等,要依据server中的信息来控制输入,可以通过uiOutput来实现。也可以通过tags$style()、h1()等css和html语言语句来实现网页的更专业化设计。actionButton()等控制开关的使用可以提高网页运行的操控性和逻辑性。简单的设计往往一蹴而就,复杂而美观的设计就需要劳神费心。

server的设计需要考虑运行结果与ui界面中控制开关的交互,逻辑清晰,这样才可以通过你的操作输出你想要的结果。

reactive()函数可以创建一个响应表达式,reactiveValues()可以保存一些结果,两者可以防止Shiny重新运行不必要的代码。renderPlot()、renderTable()等可以将图表传递到网页上展示,这里推荐DT包,可以更好地展示表格。downloadHandler()常应用于图表结果的保存。

实践操作时其实选择的方法和掌握的知识还是蛮多的,毕竟R包比较庞大。

3.案例展示

这里简单推荐一个用于常规的ui框架界面的R包(shinydashboard)(哈哈,又省去了界面框架设计)

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title="专属小页面"),
  dashboardSidebar(
    textInput(inputId="text",label = "文本信息上传"),
    selectInput(inputId="select",label = "选项信息上传",choices = c("select1","select2","..."))
  ),
  dashboardBody(
    box(plotOutput("plot1"))
  )
)

server <- function(input, output) {

  output$plot1 <- renderPlot({
    data <- data.frame(sample=1:10,select1=rnorm(10),select2=1:10)
    plot(data[,1],data[,input$select],main=input$text)
  })
}

shinyApp(ui, server)

 这样,一个简单的可以选择不同数据绘制的小网页就制作完成啦!

嗯!!!,慢慢拓展还是会发现shiny中的知识还是蛮多的,一个复杂的网页制作也不会显得太轻松,未来可能还是AI制作网页比较舒适,值得期待。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值