由于R语言生态系统内容繁复并在不断发展,人们往往容易忽视一些切实有用的知识。这些技巧往往非常简单,但对于完成工作有很大的帮助。
Shiny是R编程语言的库,允许您在本机R中创建交互式Web应用程序,而无需使用HTML,CSS或JavaScript等Web技术。将Shiny应用程序部署到Web上的方法有很多种; 本教程使用Shiny Server在Linode上托管示例Shiny应用程序。
Shiny 包含了许多用于布局应用程序组件的工具。本指南描述了以下应用程序布局功能特性:
去年在生信技能树分享了一些关于Shiny app开发,AWS部署Shiny app,以及绑定域名的经验,详见:Shiny app开发, AWS上部署Shiny app,绑定域名。
经常有对比R,Python和Julia之间的讨论,似乎R语言在这三者之中是最为逊色的,实则不可一概而论。
counties.rds是一个包含美国每个县人口统计数据的数据集,使用R包UScensus2010收集,也可从这下载
Inputs 是与用户交互的组件,用户获取用户输入。Outputs 是 Shiny 通过响应用户输入而在指定区域展示的输出,一般为图表。每个输入组件都有唯一标识符,需要展示的标签名作为参数,其他一些参数则应不同组件提供的不同功能而不同。每个输出组件也有它的唯一标识符。当在 UI 插入一个输出组件后,会自动分配一块空间用于展示,但展示的生成和逻辑都在服务端完成。
在做单细胞分析的时候,时不时会遇到这样的情况:想知道这几个在图上看着很特别的点是哪几个细胞,或是一些可见的小subcluster想要直接标记出来。大多数时候还是有各种各样的解决方法的,包括Seurat自带的一些interactive功能,不过还稍稍不那么趁手(可能是我用得太少哈哈)。
承接系列四,这一节介绍一下主体中的4种box函数。顾名思义,box函数是在主体中创建一些对象框,而对象框内可以包含任何内容。
前面几篇文章我们构建了一个简易的 Shiny 应用,如果我们仔细观察过没有几行的实现代码就知道 Shiny 将前端(实现用户界面)和后端(服务逻辑)进行了分离,这让我们可以比较独立地来看待它们。接下来的几篇文章会关注前端,探索 Shiny 提供的 HTML 输出、输出和页面布局功能。
ShinyCell包是由杜克-新加坡国立大学医学院的John F. Ouyang团队开发的单细胞分析工具包,实现基于shiny网页交互式展示单细胞数据;于2021年3月发表于Bioinformatics杂志。如文章中介绍,ShinyCell相比同类工具具有多个优势,例如直观的side-by-side的降维可视化方式,hdf5格式保存表达矩阵从而读取快速,支持pdf/png保存图片,支持多种常见单细胞数据类型等。参考其教程文档,学习记录如下。
ChatGPT是一个基于GPT-3.5架构的大型语言模型,通过对海量文本数据的训练,它可以理解并生成人类语言。因此,无论你使用什么语言与它交流,它都能够理解你的意思,并作出恰当的回应。
请此图是完全交互式的:当鼠标移到系列上时,将显示各个值。还可以选择要放大的图形区域(双击缩小)。
1写在前面 我们在画图的时候经常需要标记某个值, 如散点图中的某个具体的点, 火山图中的某个基因, 但对于代码不太熟悉的小白来说, 还是有一定难度的.🤪 本期和大家介绍一个基于shiny轻松进行label的包, 即easylabel包, 轻松实现交互式label, 麻麻再也不用担心你的画图标记啦.😗 2用到的包 rm(list = ls()) # devtools::install_github("myles-lewis/easylabel") library(easylabel) library(tidy
你现在能构建一个实用的shiny app,但是如何分享给别人呢?此篇将展示几个分享app的方法
R是一种流行的开源编程语言,专门研究统计计算和图形。它广泛用于开发统计软件和执行数据分析。R社区以不断为特定研究领域添加用户生成的包而闻名,这使其适用于许多领域。
创建问题列表。每个问题都是一个带有 id,type,title 以及 mandatory (mandatory 默认为 FALSE)的列表:
执行 runExample()可以看到内置的11个例子,github上有更多,可以体验和学习这些例子
Shiny可以将用户的数据上传到到你的应用程序里。用户可以通过浏览器进行数据的上传,并且服务器端可以访问这些数据。 一般情况下,shiny上传的数据有文件大小有限制,一般不能超过5M。可以通过shiny.maxRequestSize选项来修改这个限制。例如,在server.R的最前面加上 options(shiny.maxRequestSize=30*1024^2),可以把文件大小限制提高到30MB。
Shiny应用程序中控件选中的值可以通过生成响应式输出来显示。用户切换控件的值,输出的文本也随着控件的值自动响应。 如下是两个小控件,分别用来展示 variable to display和Range of interest,此时选中是没有响应式输出。
Shiny是一个R包,允许用户将R代码转换为交互式网页。Shiny server是RStudio提供的服务器,可用于托管和管理Web上的Shiny应用程序。除了托管Shiny应用程序,Shiny Server还可以托管交互式R降价文档。Shiny Server既有免费的开源版本,也有付费专业版,包含更多功能。
优化开发工作流程的目标是减少做出更改和看到结果之间的时间。迭代的速度越快,你可以进行的实验就越快,你就可以成为一名更好的 Shiny 开发人员。这里有两个主要的工作流程需要优化:第一次创建应用程序,以及加快代码调整和试验结果的迭代周期。
“色彩范围”命令选择现有选区或整个图像内指定的颜色或色彩范围。如果想替换选区,在应用此命令前确保已取消选择所有内容。“色彩范围”命令不可用于 32 位/通道的图像。
在开始教程前,我们先来了解一个由加拿大 IVADO(Institute for Data Valorization)资助的项目:COVID-19 Data Hub(新型冠状病毒肺炎数据中心),它是一个致力于开发一个统一的数据集,有助于更好地理解新型冠状病毒肺炎数据。
某天,我发现了Shiny这个东西,当时兴冲冲的尝试官网上各种各样的例子,最后发现这个东西似乎只能充当一个“玩具”。如果要在本地运行,它需要一个完整的R环境,这对相当一部分用户来说是极度不友好的。另外,Rstudio主张将Shiny部署在https://www.shinyapps.io/,但是看到这个价格以及资源限制以后进一步被劝退了。
shiny提供了一个函数家族,将R对象转换成在UI中的输出,每个函数创建特定类型的输出
资源背后的机构和开发者,都可以看看,他们的网站,个人Twitter之类的,寻宝哦。
二者都可以响应TCP/IP请求,给R安上Server的翅膀,实现Browser to Server的需求。
运行之后R语言会弹出一个网页,这个网页布局如下,上面为交互式的直方图,下面为app.R的代码
入门教材、day1、day2、day3、day4、day5、day6、day7、day8、day9、day10、day11、day12、day13、day14、day15、day16、day17
Rmarkdown扩展了markdown的语法,所以markdown能写的,Rmarkdown能写,后者还提供了一些新的特性,特别是图表,很nice。
我们课题组有一份油菜的核心种质资源,前几年经重测序之后已经发表了。但是课题组后面很多的项目都基于这份核心种质资源,实验室成员常常需要检索分析某些基因的特定SNP,所以我在自学了一段时间的Shiny之后就尝试着搭建了一个Shiny app并利用Shiny-server部署在课题组的服务器上,但是由于我开发的这个Shiny app本来就打开比较慢,加上很多时候服务器负荷运行,导致Shiny app打开速度就更慢了,有的时候甚至加载时间过长直接打不开。恰巧我紧跟生信技能树推文更新,了解到可以搞个云服务器来部署Shiny应用。
上节已经学会在用户界面放置一些简单的元素,但显示更复杂的内容需要用到小部件widgets
在Shiny中,reactive()是一个函数,用于创建一个响应式变量(reactive variable)。当Shiny应用程序的输入参数或状态改变时,这个响应式变量会被重新计算,并返回一个计算结果。换句话说,reactive()用于定义响应式表达式,当输入参数或状态改变时,它会自动重新计算Shiny。
PanCanSurvPlot (https://smuonco.shinyapps.io/PanCanSurvPlot/)
1.Rstudio shiny的demo及引导示例Shiny - Tutorial
在 Windows 应用程序中,选项卡用于将相关的控件集中在一起,放在一个页面中用以显示多种综合信息。选项卡控件通常用于显示多个选项卡,其中每个选项卡均可包含图片和其他控件。选项卡相当于多窗体控件,可以通过设置多页面方式容纳其他控件。由于该控件的集约性,使得在相同操作面积可以执行多页面的信息操作,因此被广泛应用于Windows设计开发之中,被很多程序员所喜爱。一般选项卡在Windows操作系统中的表现样式如图2-3所示。
译者序 原文于2017年6月21日发布,时过半载,将这篇既不是教程,也不是新闻的产品发布稿做了一番翻译,为何?只因去年下半年的时候,用R语言的博哥和龙少有Shiny这样的框架可以开发交互式整合Web数据分析报告,让我这个成天鼓吹用Python做数据分析的人眼馋不已。当时找了很久,试用了包括Bokeh、mpld3、Highcharts,以及键冬同学(Python中文社区专栏作者,GitHub开源项目PyEcharts作者)基于百度Echarts开发的PyEcharts,但是这些都是基于Web的交互视图库,而
大数据文摘作品,转载具体要求见文末 编译团队|Aileen 钱天培 JenniferZhu 作者|Julia Silge 前言 Stack Overflow的2017年程序员问卷调查[1]已在上周启动,我们(Stack Overflow的数据组)十分期待通过分析这次的调查结果来更好地了解我们的程序员群体。(译者注:Stack Overflow是一个IT技术问答网站,用户可在上面免费浏览、提交和回答问题。)我一直关注从事科技相关领域的女性群体,所以为了进一步地了解女程序员群体的现状,最近我特地去研究了去年(
一些常用的属性: DataMember 当数据源包含多个不同的数据项列表时,获取或设置数据绑定控件绑定到的数据列表的名称。(从 DataBoundControl 继承。) DataSource 获取或设置对象,数据绑定控件从该对象中检索其数据项列表。(从 BaseDataBoundControl 继承。) DataSourceID 获取或设置控件的 ID,数据绑定控件从该控件中检索其数据项列表。(从 DataBoundControl 继承。) DataTextField 获取或设置为列表项提供文本内容的数据源字段。(从 ListControl 继承。) DataTextFormatString 获取或设置格式化字符串,该字符串用来控制如何显示绑定到列表控件的数据。(从 ListControl 继承。) DataValueField 获取或设置为各列表项提供值的数据源字段。(从 ListControl 继承。) Items 获取列表控件项的集合。(从 ListControl 继承。) SelectedIndex 已重写。获取或设置 DropDownList 控件中的选定项的索引。 SelectedItem 获取列表控件中索引最小的选定项。(从 ListControl 继承。如果列表控件只允许一个选项,则使用此属性可获取选定项的各个属性。如果列表控件允许多个选项,则使用此属性可获取列表控件中索引最小的选定项的属性。 ) SelectedValue 获取列表控件中选定项的值,或选择列表控件中包含指定值的项。(从 ListControl 继承。) Text 获取或设置 ListControl 控件的 SelectedValue 属性。(从 ListControl 继承。) 公共方法: DataBind 已重载。 将数据源绑定到被调用的服务器控件及其所有子控件。 (从 BaseDataBoundControl 继承。) FindControl 已重载。 在当前的命名容器中搜索指定的服务器控件。 (从 Control 继承。) GetType 获取当前实例的 Type。 (从 Object 继承。) 公共事件 SelectedIndexChanged 当列表控件的选定项在信息发往服务器之间变化时发生。(从 ListControl 继承。) TextChanged 当 Text 和 SelectedValue 属性更改时发生。(从 ListControl 继承。)
参见:https://blog.csdn.net/weixin_41929524/article/details/108998848
当你开始编写应用程序时,几乎可以确定会出错。导致大多数错误的原因是我们心里的 Shiny 设计模型与 Shiny 实际的运行情况的不匹配。当你阅读本文时,你的思维模式将得到改善,从而减少犯错,而一旦犯错,就更容易发现问题。但是,要想首次使用代码就可以可靠地解决复杂的问题,就需要使用多种语言的多年经验。这意味着你需要构建一个强大的工作流来识别和修复错误。
Shiny使用fluidPage创建一个显示界面,该显示界面可自动调整为用户浏览器窗口的尺寸。还可以通过在fluidPage函数中设置元素对用户界面进行布局。
今天给大家介绍一个在R中的神器-网页快照获取。这个包可以进行批量获取网页并转化为图像,那这功能有啥用呢,大家可以开动脑筋想想,反正和shiny配合起来那是很好玩的。
Dashboards入门前三期可见:R文档沟通|Dashboards入门(1);R文档沟通|Dashboards入门(2);R文档沟通|Dashboards入门(3),今天给出该系列最后一期:在Dashboards中添加 Shiny应用。内容比较少,最后给出一些拓展资料供大家参考。
我们通过前面的文章已经对响应式编程的基本思路有所熟悉,这里我们将讨论更加高级的技术,它可以让我们更加合理地使用响应表达式。
在我们知道如何创建一系列输入和输出控件之后,我们需要学会如何在一个页面中对它们进行排列,以达到比较好的展示效果。这正是布局函数的工作,布局函数提供了一个应用高层次的可视化结构。
此篇旨在如何构建app对用户界面,如何布局用户界面然后加文字图片和其他HTML元素
领取专属 10元无门槛券
手把手带您无忧上云