shiny学习-2
shiny学习-2
概述
填补上次的更新
正文
添加控件
类似的控件如下
shiny提供了一系列的预置的控件,已经打包好,作为函数
函数名 |
控件 |
---|---|
actionButton |
Action Button |
checkboxGroupInput |
A group of check boxes |
checkboxInput |
A single check box |
dateInput |
A calendar to aid date selection |
dateRangeInput |
A pair of calendars for selecting a date range |
fileInput |
A file upload control wizard |
helpText |
Help text that can be added to an input form |
numericInput |
A field to enter numbers |
radioButtons |
A set of radio buttons |
selectInput |
A box with choices to select from |
sliderInput |
A slider bar |
submitButton |
A submit button |
textInput |
A field to enter text |
使用这些控件需要两个参数,一个参数用来命名,一个参数是label,前一个被用来在程序内传递参数,后一个参数用来显示在用户界面 例子
library(shiny)
# 定义 UI ----
ui <- fluidPage(
titlePanel("Basic widgets"), # app的名字
fluidRow( #构建网格化的控件,与之前的sidebarLayout不同
column(3,#3为各个控件的间隔
h3("Buttons"),#3号字体
actionButton("action", "Action"),# 添加动作按钮
br(),
br(),
submitButton("Submit")),
column(3,
h3("Single checkbox"),
# 单选框
checkboxInput("checkbox", "Choice A", value = TRUE)),
column(3,
# 多选框
checkboxGroupInput("checkGroup",
h3("Checkbox group"),
choices = list("Choice 1" = 1,
"Choice 2" = 2,
"Choice 3" = 3),
selected = 1)),
column(3,
# 日期输入
dateInput("date",
h3("Date input"),
value = "2014-01-01"))
),
# 第二个行控件网格
fluidRow(
column(3,# 日期范围
dateRangeInput("dates", h3("Date range"))),
column(3,#输入文件
fileInput("file", h3("File input"))),
column(3, #文本控件
h3("Help text"),
helpText("Note: help text isn't a true widget,",
"but it provides an easy way to add text to",
"accompany other widgets.")),
column(3, #数字输入
numericInput("num",
h3("Numeric input"),
value = 1))
),
# 第三行控件
fluidRow(
column(3,#单选按钮
radioButtons("radio", h3("Radio buttons"),
choices = list("Choice 1" = 1, "Choice 2" = 2,
"Choice 3" = 3),selected = 1)),
column(3,#选择窗口
selectInput("select", h3("Select box"),
choices = list("Choice 1" = 1, "Choice 2" = 2,
"Choice 3" = 3), selected = 1)),
column(3, #滑动条
sliderInput("slider1", h3("Sliders"),
min = 0, max = 100, value = 50),
sliderInput("slider2", "",
min = 0, max = 100, value = c(25, 75))
),
column(3, #文本输入
textInput("text", h3("Text input"),
value = "Enter text..."))
)
)
# 定义server 代码 ----
# 这里为空
server <- function(input, output) {
}
# 运行app ----
shinyApp(ui = ui, server = server)
结果
显示输出
在UI中添加r对象的输出 具体函数如下
Output function |
Creates |
---|---|
dataTableOutput |
DataTable |
htmlOutput |
raw HTML |
imageOutput |
image |
plotOutput |
plot |
tableOutput |
table |
textOutput |
text |
uiOutput |
raw HTML |
verbatimTextOutput |
text |
输出函数需要放在ui的sidebarPanel或mainPanel中 例子
# 构建输出面板,编写UI
ui <- fluidPage(
titlePanel("censusVis"),
sidebarLayout(
sidebarPanel(# 侧面板
helpText("Create demographic maps with
information from the 2010 US Census."),
selectInput("var",
label = "Choose a variable to display",
choices = c("Percent White",
"Percent Black",
"Percent Hispanic",
"Percent Asian"),
selected = "Percent White"),
sliderInput("range",
label = "Range of interest:",
min = 0, max = 100, value = c(0, 100))
),
mainPanel(# 主面板
textOutput("selected_var")#文本输出
)
)
)
在面板中定义了输出,接下来需要在server中定义输出内容 在shiny中提供了函数自动引用面板中的数据,render函数自动引用面板中的变量
render function |
creates |
---|---|
renderDataTable |
DataTable |
renderImage |
images (saved as a link to a source file) |
renderPlot |
plots |
renderPrint |
any printed output |
renderTable |
data frame, matrix, other table like structures |
renderText |
character strings |
renderUI |
a Shiny tag object or HTML |
# 编写server代码
server <- function(input, output) {
#在ui中,我们定义了selected_var,但是并没有定义它的具体赋值
output$selected_var <- renderText({
paste("You have selected", input$var)
})
}
结果,控件框中输入不同的值,右边显示不同的结果
结束语
love & peace
- 洛谷P1976 鸡蛋饼
- 洛谷P1420 最长连号
- 各种读入方式速度比较
- 美团NLP实习面试总结一 基本知识4 数据结构二 NLP相关技术1 LSTM2 介绍实体链接与实体映射3 解释随机游走的原理及作用4 命名实体识别
- 【下载】苹果发布Turi Create机器学习框架,5行代码开发图像识别
- codevs 4163 hzwer与逆序对
- ASP.NET Core提供模块化Middleware组件
- CSS预处理器的对比 — sass、less和stylus
- Gensim实现Word2Vec的Skip-Gram模型简介快速上手对语料进行分词使用gensim的word2vec训练模型
- React第三方组件4(状态管理之Reflux的使用②TodoList上)
- 机器学习(六)Sigmoid函数和Softmax函数1 Sigmoid函数2 Softmax函数
- React第三方组件4(状态管理之Reflux的使用①简单使用)
- React第三方组件3(状态管理之Flux的使用⑤异步操作)
- 使用yo-get下载视频网站视频或其
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Centos安装最新版本cmake
- 【实战】提权某找小姐网站服务器
- 激发态计算中的溶剂效应
- 不会吧,有人用了两年Spring, 居然不知道包扫描是怎么实现的
- 不会吧!都 0202 年了,不会还有不知道 axios 的吧
- 全栈的自我修养: 002使用@vue/cli进行vue环境搭建 (使用Vue,SpringBoot,Flask完成前后端分离)
- JAVA | Java 解决跨域问题 花式解决跨域问题
- 深入理解Java泛型(二)通配符与嵌套
- 用高斯计算磷光发射能
- Android So动态加载 优雅实现与原理分析
- 堆与栈区别
- 在Gaussian16中同时扫描两个反应坐标
- python调试神器traceback
- Centos安装高版本GCC
- Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤