美文网首页
Shiny-R语言轻松开发交互式web应用

Shiny-R语言轻松开发交互式web应用

作者: 生信交流平台 | 来源:发表于2021-03-07 14:05 被阅读0次

Shiny简介

Shiny是RStudio公司开发的新包,有了它,可以用R语言轻松开发交互式web应用。

特性

  • 只用几行代码就可以构建有用的web应用程序—不需要用JavaScript。
  • Shiny应用程序会自动刷新计算结果,这与电子表格实时计算的效果类似。当用户修改输入时,输出值自动更新,而不需要在浏览器中手动刷新。
  • Shiny用户界面可以用纯R语言构建,如果想更灵活,可以直接用HTML、CSS和JavaScript来写。
  • 可以在任何R环境中运行(R命令行、Windows或Mac中的Rgui、ESS、StatET、RStudio等)
  • 基于Twitter Bootstrap的默认UI主题很吸引人。
  • 高度定制化的滑动条小工具(slider widget),内置了对动画的支持。
  • 预先构建有输出小工具,用来展示图形、表格以及打印输出R对象。
  • 采用websockets包,做到浏览器和R之间快速双向通信。
  • 采用反应式(reactive)编程模型,摒弃了繁杂的 事件处理代码,这样你可以集中精力于真正关心的代码上。
  • 开发和发布你自己的Shiny小工具,其他开发者也可以非常容易地将它加到自己的应用中

安装

Shiny可以从CRAN获取, 所以你可以用通常的方式来安装,在R的命令行里输入:

install.packages("shiny")

下面来用Shiny说hello吧!

Hello Shiny是个简单的应用程序,基于faithful 数据集画直方图。与常见的R语言做出的图不同,Hello shiny有一个可以调整bins(柱的个数)的滑条,用户可以滑动选择bins的数目,app图表会随即产生变化. 要运行这个例子,只需键入:

library(shiny)
runExample("01_hello")

Shiny应用程序分为两个部分:用户界面定义和服务端脚本。这两部分的源代码将在下面列出。

现在,就尝试运行一下例子程序,浏览一下源代码,可以获得对shiny的初始印象。也可以通过认真阅读注释来进一步了解。

用户界面是在源文件ui.R中定义的:

ui.R

library(shiny)

# Define UI for app that draws a histogram ----
ui <- fluidPage(

  # App title ----
  titlePanel("Hello Shiny!"),

  # Sidebar layout with input and output definitions ----
  sidebarLayout(

    # Sidebar panel for inputs ----
    sidebarPanel(

      # Input: Slider for the number of bins ----
      sliderInput(inputId = "bins",
                  label = "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30)

    ),

    # Main panel for displaying outputs ----
    mainPanel(

    # Output: Histogram ----
      plotOutput(outputId = "distPlot")

    )
  )
)

下面列出了服务端的代码。从某种程度上说,它很简单——根据用户选择的bin的数目来将直方图画出来。

server.R

library(shiny)
# Define server logic required to draw a histogram ----
server <- function(input, output) {
  # Histogram of the Old Faithful Geyser Data ----
  # with requested number of bins
  # This expression that generates a histogram is wrapped in a call
  # to renderPlot to indicate that:
  #
  # 1. It is "reactive" and therefore should be automatically
  #    re-executed when inputs (input$bins) change
  # 2. Its output type is a plot
  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")

    })

}

运行出来效果是这样的

你也可以将ui.R和server.R保存到同一个文件夹,然后改变工作路径到那个文件夹,运行

library(shiny)
runApp()

也可以得到上面一样的效果。

Shiny-R语言轻松开发交互式web应用

相关文章

  • Shiny-R语言轻松开发交互式web应用

    Shiny简介 Shiny是RStudio公司开发的新包,有了它,可以用R语言轻松开发交互式web应用。 特性 只...

  • shiny-server 安装过程出现问题总结

    Shiny是RStudio公司开发的新包,有了它,可以用R语言轻松开发交互式web应用。想查看更详细的介绍和实例,...

  • 一个 Shiny app的基本组成部分

    Shiny 是RStudio公司开发的新包,利用Shiny 可以轻松构建交互式Web应用程序(App)。 安装Sh...

  • R shiny教程-2:布局用户界面

    Shiny 是RStudio公司开发的R包,利用Shiny 可以轻松构建交互式Web应用程序(App)。 在前面一...

  • Go Web编程.epub

    【下载地址】 《Go Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一...

  • Shiny本地网页部署与实现

    Shiny是R里面一个非常出名的包,有了它,可以用R语言方便开发交互式web应用。Shiny程序是个简单的目录,里...

  • JavaScript概述

    JavaScript是Web开发领域中的一种功能强大的编程语言,主要用于开发交互式的Web页面。在计算机、手机等设...

  • 什么是JavaScript?1分钟了解JavaScript开发

    JavaScript是Web开发领域中的一种功能强大的编程语言,主要用于开发交互式的Web页面。在计算机、手机等设...

  • Django入门

    Web应用程序Django入门Django是一个Web框架———一套用于帮助开发交互式网站的工具。Django能够...

  • 前言

    近年来,随着Web应用突飞猛进的发展,促使了Web应用开发语言的不断普及,越来越多的开发者开始学习与使用Web应用...

网友评论

      本文标题:Shiny-R语言轻松开发交互式web应用

      本文链接:https://www.haomeiwen.com/subject/hiqyqltx.html