R语言用Shiny包快速搭建交互网页应用

本文介绍如何使用R语言中的Shiny包快速搭建一个交互式的网页应用,该应用可以动态展示鸢尾花数据集的散点图,并提供选项让用户自定义图表样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自http://www.klshu.com/1144.html


R语言用Shiny包快速搭建交互网页应用

Shiny包的特点在于不需要了解网页语言,可以用纯R来搭建。生成的网页应用是动态交互,而且是即时更新的。Shiny还提供了现成组件方便快速在网页上展示数据、图表和模型,的确是非常的炫。本例将用ggplot2包来绘制iris数据集的散点图,并将图形放到网页中。

首先安装Shiny包:

>options(repos = c(RStudio = 'http://rstudio.org/_packages',  getOption('repos')))
>install.packages('shiny')

再写两个R代码文件:
一个是负责前端的ui.R,另一个是负责后端的server.R。

ui.R的代码如下:

library(shiny)
library(ggplot2)
 
dataset <- iris
 
shinyUI(pageWithSidebar(
 
  headerPanel("鸢尾花的数据展示"),
  sidebarPanel(
 
    selectInput('x', 'X', names(dataset)),
    selectInput('y', 'Y', names(dataset)[2]),
    selectInput('color', 'Color', c('None', names(dataset))),
 
    checkboxInput('smooth', 'Smooth')
    ),
 
  mainPanel(
    plotOutput('plot')
  )
))

server.R的代码如下:

library(shiny)
library(ggplot2)
 
shinyServer(function(input, output) {
 
  # dataset <- iris
   output$plot <- reactivePlot(function() {
 
    p <- ggplot(dataset, aes_string(x=input$x, y=input$y)) + geom_point()
 
    if (input$color != 'None')
      p <- p + 
        aes_string(color=input$color) + 
        theme(legend.position="top")
 
    if (input$smooth)
      p <- p + 
        geom_smooth() + 
        theme(legend.position="top")
 
    print(p)
 
  }, height=400)
 
})

将这两个代码文件存放到同一个文件夹下,例如我是放在在”d:/rspace/shinyapp”。

最后在控制台下运行:

>library(shiny)
>runApp("d:/rspace/shinyapp")

之后R会自动打开系统默认的浏览器,并展示出如下的界面。

shiny

Shiny包的缺点:
在部署分享方面,Shiny包只能在本地浏览器展示应用。如果要分享给其它人的话,需要将R代码传到网盘或打包分发,而对方也需要使用runApp命令来进行本地展示。RStudio团队正在开发Shiny服务器构架,让使用者仅需要一个浏览器和网址就可以运行网页应用。不过这将是一个收费的服务。

实例:R语言用Shiny包实例一

参考:http://www.r-bloggers.com/lang/chinese/1163

This entry was posted in  可视化编程数据分析 and tagged  R语言 by  hotty. Bookmark the  permalink.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值