R语言 使用Shiny包创建一个交互式网络应用程序

R语言 使用Shiny包创建一个交互式网络应用程序

在继续之前,也许快速介绍一下Shiny是什么会有帮助。由于Shiny包的存在,用R编程语言创建交互式网络应用程序非常简单。Shiny的优势在于,它使你能够将你的R代码扩展到网络上,这从本质上增加了你的代码对更多人的实用性。

由于R Shiny框架,即RStudio的一个软件包,用R构建交互式网络应用程序是非常简单的。R Shiny的奇妙之处在于,它能让你产生令人难以置信的有效数据报告和可视化,让用户探索一个数据集。除了Shiny元素外,你还可以使用HTML元素来设计你的应用程序的内容。

R-Shiny网络应用的构建模块

Shiny网络应用有两个部分。

  • 用户界面 – {ui.R}UI控制应用程序页面上显示的内容以及组件的布局方式。这可能包括文本和其他标记元素、图形、接受用户输入的小工具,或绘图。在本教程中,你还将使用用户界面来定义一个带有多个标签的导航条。接收用户输入值的前端被称为 “用户界面”。
  • 服务器– {server.R}是处理这些输入值的后端,以创建最终显示在网站上的输出结果。将通过用户界面显示的数据是在服务器的控制之下。你将把数据加载到服务器上并对其进行管理,然后使用来自用户界面的输入定义你的输出。 在R中使用Shiny包创建一个交互式网络应用程序

R-Shiny Web应用程序的构建模块

设置Shiny应用程序的步骤

  • 创建一个新的目录,然后在其中创建两个R脚本,”ui.R “和 “server.R”,以创建一个新的Shiny应用程序。server.R “脚本将指定应用程序的逻辑和功能,而 “ui.R “脚本将指定应用程序的设计和用户接口。
  • 使用 “ui.R “脚本的fluidPage()、sidebarLayout()和textInput()函数来设计应用程序的布局和用户界面。
  • 使用observeEvent()和render*()等函数,在 “server.R “脚本中构建应用程序的逻辑和功能。
  • 完成上述步骤后,你可以通过运行以下命令启动应用程序。

你需要安装Shiny , Shinythemes和ggplot2软件包,然后也要加载它们。

# Installing Necessary Packages
install.packages("shiny")
install.packages("shinythemes")
install.packages("ggplot2")
  
# Loading the libraries
library(shiny)
library(shinythemes)
library(ggplot2)

在加载库和模板后,你必须定义用户界面。

#UI Defined 
ui <- fluidPage(theme = shinytheme("superhero"),
                navbarPage(
                      
                      # mainPanel
                    "Welcome to GFG",
                    
                      # Tab 1
                    tabPanel("Tab 1",
                             mainPanel(
                                 tags$h3("Register to GFG:"),
                                 textInput("txt1", "Name:", ""),
                                 textInput("txt2", "Surname:", ""),
                                  textInput("txt3", "Email:", ""),
                                  textInput("txt4", "Mobile.No:", ""),
                                 textInput("txt5", "Education:", ""),
                                 textInput("txt6", "College:", ""),
                                 textInput("txt7", "Programming Language:", ""),
                                 textInput("txt8", "Area of Intrest:", ""),
                                   
                                 hr(),
                                h4("Here is your Details"),
                               verbatimTextOutput("txtout"),
                             )),
                      # TabPanel
                    tabPanel("Tab 2",
                             h3("Hello !! Here is the Plot Graph,
                                 Slider, Dropdown and Date picker!!!"))),
                             hr(),
                             (
  plotOutput("plot") #PlotGraph
),
                             hr(),
                             sidebarPanel(
      sliderInput("slider", "Select a value:", min = 10,
                  max = 500, value = 125),
      selectInput("dropdown", "Select an option:",
                  c("Python", "JAVA", "C++")),
      dateInput("datepicker", "Select a date:"),
      ),#SidebarPanel
    mainPanel(
      h3("Selected values:"),
      textOutput("selected_value"),
      textOutput("selected_option"),
      textOutput("selected_date"),
    )
 )

在定义了用户界面之后,你必须定义服务器。在定义了用户界面和服务器后,你必须创建一个闪亮的对象。

# Define Server Function 
server <- function(input, output) {
   outputselected_value <- renderText({inputslider})
  outputselected_option <- renderText({inputdropdown})
  outputselected_date <- renderText({inputdate})
   outputtxtout <- renderText({
     paste(inputtxt1, inputtxt2,
           inputtxt3, inputtxt4, inputtxt5,
           inputtxt6, inputtxt7, inputtxt8,
           sep = " " )
   })
    outputplot <- renderPlot({
    ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()
  })
 }
  
  
# to Run App 
shinyApp(ui = ui, server = server)

输出

在R中使用Shiny包创建一个交互式网络应用程序

闪亮的应用程序 – Tab 1

在R中使用Shiny包创建一个交互式网络应用程序

Shiny App – Tab 2

摘要

这个例子演示了如何使用Shiny包制作一个接受用户输入并显示结果的交互式Web应用。这个应用还展示了PlotGraph。在屏幕的左边,这个应用程序将显示一个滑块、下拉菜单和日期选择器。在屏幕的右边,它将显示被选中的数值。 为了创建一个更复杂的交互式用户界面和更复杂的服务器逻辑,你可以用更多的应用程序来使用其他各种Shiny函数和小工具。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程