R语言系列教程-----一起来学shiny吧(1)

什么是shiny?Shiny是一个R包,可让您轻松地直接从 R 构建交互式 Web 应用程序(应用程序)。本系列是个长教程,带你由浅入深学习shiny。
在这里插入图片描述
我们先使用系统自带的一个例子来介绍一下shiny,我们先导入shiny包

library(shiny)

我们来运行一个R包自带的模板看看什么是交互应用程序

runExample("01_hello")

在这里插入图片描述
弹出一个类似软件的界面,图形显示的是一个直方图,当我们拖动左边的圆点,直方图图形会随着你的拖动改变
在这里插入图片描述
这就是一个最简单的应用。这个APP由3个部分组成,
• 用户界面对象
• 服务器功能
• 调用shinyApp函数
下面我们来一一介绍怎么做成的。我们先来看一下它的整体代码

ui <- fluidPage(
  
  titlePanel("Hello Shiny!"),
  
  sidebarLayout(
    
    sidebarPanel(
      
      sliderInput(inputId = "bins",
                  label = "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30)
      
    ),
    
    mainPanel(
      
      plotOutput(outputId = "distPlot")
      
    )
  )
)
server <- function(input, output) {
  
  output$distPlot <- renderPlot({
    
    x    <- faithful$waiting
    bins <- seq(min(x), max(x), length.out = input$bins + 1)
    
    hist(x, breaks = bins, col = "#75AADB", border = "white",
         xlab = "Waiting time to next eruption (in mins)",
         main = "Histogram of waiting times")
    
  })
  
}

shinyApp(ui, server)整体代码分成3部分,ui这部分是属于用户操作的部分,控制对象控制应用程序的布局和外观。Server控制计算机构建和R的操作代码部分。shinyApp函数负责对两部分连接。
我们先来看ui这个函数,ui是我们自己定义的,你定义成别的名字也是可以的

ui <- fluidPage(
  
  titlePanel("Hello Shiny!"),
  
  sidebarLayout(
    
    sidebarPanel(
      
      sliderInput(inputId = "bins",
                  label = "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30)
      
    ),
    
    mainPanel(
      
      plotOutput(outputId = "distPlot")
      
    )
  )
)

titlePanel(“Hello Shiny!”)这句是给软件添加标题
在这里插入图片描述
sidebarLayout函数是进行输入和输出的界面布局,创建带有侧边栏(sidebarPanel())和主区域(mainPanel())的布局(sidebarSlayout()。
sidebarPanel函数创建左侧侧边栏,在sidebarPanel函数中sliderInput函数创建一个小的滑块value
定义初始值,min和max定义最小最大值,label定义滑块的名字,inputId = "bins"将定义访问值的输入内容,bins的内容会和server函数进行一个链接,mainPanel函数控制右侧的主面板输出,plotOutput将会进行图片输出,在输出内容中outputId = "distPlot"表示输出的内容定义为distPlot。distPlot内容会和server函数进行一个链接。
接下来就是server函数服务器功能部分

server <- function(input, output) {
  
  output$distPlot <- renderPlot({
    
    x    <- faithful$waiting
    bins <- seq(min(x), max(x), length.out = input$bins + 1)
    
    hist(x, breaks = bins, col = "#75AADB", border = "white",
         xlab = "Waiting time to next eruption (in mins)",
         main = "Histogram of waiting times")
    
  })
  
}

Server函数具有两个部分input, output代表输入和输出部分。自带的例子使用R内置的数据,所以本例子没有输入部分,只有输出部分。这里的bins对应着界面设置部分的sliderInput,hist函数为R的绘制直方图函数,hist函数内为一些基本设置。
界面部分和服务器部分都设置好以后,我们shinyApp函数把它们链接起来就可以了。

shinyApp(ui, server)

在这里插入图片描述
这样我们就制作成了一个app,我们把它保存起来,命名为app.R,下次直接点run app就可以启动了
在这里插入图片描述
建立好后我们也可以对代码进行局部修改,假设我们我们想把柱子改成红色的,边框改成橘色的

server <- function(input, output) {
  
  output$distPlot <- renderPlot({
    
    x    <- faithful$waiting
    bins <- seq(min(x), max(x), length.out = input$bins + 1)
    
    hist(x, breaks = bins, col = "red", border = "orange",
         xlab = "Waiting time to next eruption (in mins)",
         main = "Histogram of waiting times")
    
  })
  
}

保存后重新运行
在这里插入图片描述
已经变成红色的了,本期介绍了shiny的初步认识和简单应用,未完待续。

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值