Shiny是RStudio的一个包,它使得用R构建交互式Web应用程序变得非常容易。不需要知道任何有关Web应用程序的事情 ,就可以编写Shiny 应用程序。
然而多数Shinyapp仅是对一个结果进行可视化,通常我们在分析数据后会得到多个可视化结果,如果需要在一个app中实现展示,需要配合条件语句和复选框来实现。因此,在这里我们介绍这个实用的功能:
首先新建一个shiny项目。
打开rstudio,然后新建一个项目,选择New Directory。
然后创建一个appliction 。
配合条件语句,我们把多个可视化结果分别放入ouput对象的image变量,同时还可以创建一个text变量来解释这些图像,同样也是用条件语句。
我们编写的rshiny模板如下:
library(shiny)
library(ggplot2) # Data visualization
library(readr) # CSV file I/O, e.g. the read_csv function
library(dplyr)
library(data.table)
shinyApp(
ui=fluidPage(
titlePanel("Image output"),
fluidRow(
column(4, wellPanel(
radioButtons("picture", "Picture:",
c(1:8))
)),
column(4,
# imageOutput("image1", height = 300),
imageOutput("image2", height = 300),
textOutput("summary")
)
)
),
server<-function(input, output, session) {
# boxplot
movies <- read.csv("movie_metadata.csv", header = T)
x<- movies$content_rating
y<- movies$gross
output$image2 <- renderPlot({
if (input$picture == "1") {
boxplot(y~x,data=movies)
} else if (input$picture == "2") {
。。。(图片2)
}else if (input$picture == "3") {
。。。(图片3)
}else if (input$picture == "4") {
。。。。(图片4)
} )
output$summary <- renderText({
if (input$picture == "1") {
paste0('Pic.', input$picture ," ,this picture is about boxplot of .." )
} else if (input$picture == "2") {
注释2
}else if (input$picture == "3") {
注释3
}
。。。
})
}
)
如果shiny安装好了的话,你可以按run app按钮来预览我们的app。
可以得到如下效果,通过互动的复选框我们可以展示多个可视化结果:
还有很多需要学习的地方,希望今后大家可以做出更加有用的app。
原文请浏览官网
【拓端数据tecdat.cn】第三方数据服务提供商,提供全面的统计分析与数据挖掘咨询服务,为客户定制个性化的数据解决方案与行业报告等。
中国专业的统计分析和数据挖掘咨询服务商:拓端数据(商务合作请联系官网客服)
帅的小伙伴都关注了拓端数据团队^..^~
QQ交流群:186388004
微信公众号:拓端数据
微信客服号:lico_9e
网友评论