R文档沟通|Dashboards入门(4)

简介: Dashboards入门前三期可见:R文档沟通|Dashboards入门(1);R文档沟通|Dashboards入门(2);R文档沟通|Dashboards入门(3),今天给出该系列最后一期:在Dashboards中添加 Shiny应用。内容比较少,最后给出一些拓展资料供大家参考。

简介


Dashboards入门前三期可见:R文档沟通|Dashboards入门(1)R文档沟通|Dashboards入门(2)R文档沟通|Dashboards入门(3),今天给出该系列最后一期:Dashboards中添加 Shiny应用。内容比较少,最后给出一些拓展资料供大家参考。

在仪表盘中添加 Shiny,可以利用viewers更改参数,并显示实时结果。或者当仪表盘的数据发生变化时,让仪表盘进行实时更新(请参阅 shiny 包中的 reactiveFileReader()reactivePoll() 函数)。这是通过将 runtime: shiny 添加到标准仪表盘文档来实现的,然后添加一个或多个输入控件或响应式表达式来动态驱动仪表板内组件的外观。

flexdashboard 中使用 Shiny 可以将一个静态的 R Markdown 报告变成一个交互式文档。需要注意的是,交互式文档需要部署到 Shiny 的服务器上,以便广泛共享(而静态 R Markdown 文档是可以附加到电子邮件或从任何标准 web 服务器提供的独立 web 页面)。

注意, shinydashboard 包提供了用 Shiny 创建仪表盘的另一种方法。


入门指南

在仪表盘中添加 Shiny 组件的步骤如下:

  1. 在文档顶部 YAML 元数据中添加 runtime: shiny
  2. 在仪表盘第一列添加 {.sidebar} 属性,使其成为 Shiny 控件输入的控制台(:这一步不是必须的,但这是基于 Shiny 仪表盘的经典布局)。
  3. 根据需求,添加 Shiny 的输入和输出。
  4. 当代码中包含绘图函数时(例如:hist()),得将它们封装在 renderPlot() 中。这有利于界面在布局更改时,自动调整尺寸大小。


Shiny 仪表盘的一个示例

下图给出了 Shiny 仪表盘的一个示例:

---
title: "Old Faithful Eruptions"
output: flexdashboard::flex_dashboard
runtime: shiny
---
```{r global, include=FALSE}
# load data in 'global' chunk so it can be shared
# by all users of the dashboard
library(datasets)
data(faithful)
```
Column {.sidebar}
--------------------------------------------------
Waiting time between eruptions and the duration of the eruption
for the Old Faithful geyser in Yellowstone National Park,
Wyoming, USA.
```{r}
selectInput(
  "n_breaks", label = "Number of bins:",
  choices = c(10, 20, 35, 50), selected = 20
)
sliderInput(
  "bw_adjust", label = "Bandwidth adjustment:",
  min = 0.2, max = 2, value = 1, step = 0.2
)
```
Column
--------------------------------------------------
### Geyser Eruption Duration
```{r}
renderPlot({
  erpt = faithful$eruptions
  hist(
    erpt, probability = TRUE, breaks = as.integer(input$n_breaks),
    xlab = "Duration (minutes)", main = "Geyser Eruption Duration",
    col = 'gray', border = 'white'
  )
  dens = density(erpt, adjust = input$bw_adjust)
  lines(dens, col = "blue", lwd = 2)
})
```

7X0I]_9FLXZZ93D{B%1$3IK.png

其中,仪表盘的第一列包含了 {.sidebar} 属性和两个 Shiny 的输入控件;第二列包含了绘制图表的 Shiny 代码。

:文档顶部标记为 global 的 R 代码块在全局环境中都可以被调用。这将为用户带来更好的启动性能,强烈推荐大家使用。


输入栏

通过添加 {.sidebar} 属性设置一个默认布局为左对齐,250像素宽度的左侧边栏。

在搭建多个页面的仪表盘时,如果你想创建一个应用于所有页面的工具条。这时,你可以使用一级结构来定义侧边栏。


拓展

下面给出一些学习 Shiny 和创建交互式文档的资源:

  1. Shiny 官方网站( http://shiny.rstudio.com) :包含大量的文章、教程和示例。
  2. Shiny 网站上的文章“Introduction to Interactive Documents”,这是一个很好的入门指南。
  3. 关于部署交互式文档,你可以使用 Shiny Server 或 RStudio Connect:https://www.rstudio.com/products/shiny/shiny-server/
目录
相关文章
|
8月前
|
关系型数据库 MySQL 数据库
MinDoc:针对IT团队的文档、笔记系统
作为一名IT从业者,无论是在公司团队中,还是在平时自己写一些笔记、博客等文档,我都习惯使用markdown来进行书写。在使用过许多支持markdown语法的系统或软件(如Typora、未知、我来、思源、觅道等)后,我总觉得它们不能满足我的需求。直到我发现了MinDoc这款针对IT团队开发的简单好用的开源文档管理系统。我们下面将介绍一下这个项目及如何使用docker-compose 快速部署。
172 1
MinDoc:针对IT团队的文档、笔记系统
|
JavaScript 搜索推荐 前端开发
软件工程师文档写作最佳实践
软件工程师文档写作最佳实践
134 1
软件工程师文档写作最佳实践
|
存储 Java 程序员
如何写好技术文档——来自Google十多年的文档经验
如何写好技术文档——来自Google十多年的文档经验
439 1
如何写好技术文档——来自Google十多年的文档经验
|
缓存 小程序 应用服务中间件
MrDoc免费的团队文档系统
MrDoc免费的团队文档系统
704 0
|
数据可视化
R文档沟通|Dashboards入门(2)
关于仪表盘布局的总体规则是: • 一级标题:生成页面; • 二级标题:生成列(或行); • 三级标题:生成框(包含一个或多个仪表盘组件)。
88 0
R文档沟通|Dashboards入门(2)
|
数据可视化
R文档沟通|Dashboards入门(1)
在本章中,我们将介绍基于 flexdashboard[1] 包的仪表盘。 仪表盘在业务风格的报告中特别常见。它们可以用来突出报告的概要和关键内容。仪表盘的布局通常是基于网格搭建的,各个组件排列在各种大小的“盒子”中。
120 0
R文档沟通|Dashboards入门(1)
|
前端开发 JavaScript 数据可视化
R文档沟通|Dashboards入门(3)
前面推了两期有关dashboards的推文,可见:R文档沟通|Dashboards入门(1);R文档沟通|Dashboards入门(2)
184 0
R文档沟通|Dashboards入门(3)
略谈为什么要重视文档写作
略谈为什么要重视文档写作
170 0
略谈为什么要重视文档写作