迭代 可以使用for循环或者lapply对列表进行迭代,比如要绘图,则可以: for (i in test) plot(i) lapply(test, plot) 都是将列表中的三个元素绘制出三个散点图...对于test而言,value就是上面创建的三个向量,如下: test_t <- enframe(test) tets_t # # A tibble: 3 x 2 # name value...如果使用ggplot2绘制,则是如下: ? 这里传递test_t的参数给map2时使用magrittr包的”爆炸运算符“:%$%。...它的作用可和with类似,使用它后,管道后面的函数可以直接使用test_t的列名。 ggplot2后面的函数部分,x与y分别是对应name和value,最后绘图即可。...每个图上面都有标题,这样更容易观察。
在先前的内容里:[[66-R可视化10-自由的在ggplot上添加文本(柱状图加计数)]],我们提到过添加文本的方法。...分布解读代码 这里我首先创建了一个ggplot 对象plot。...列表会多出一个patches,其存放的就是其他的ggplot 图的信息。...对象虽然正常print 会输出其列表槽中的全部信息,但依然可以输出ggplot 图像的: > class(pb) [1] "ggplot_built" pb ggplot_build(plot...接下来就是将上面浏览过的pb 中的color信息添加到数据框中: data <- cbind(data, color = pb$data[[1]][[1]]) 至于为什么这么做,接下来即将操作的label
对象的存在 data lapply(data, ggplot2:::scales_map_df, scales = npscales) } data 的直接位置是来源于data lapply(data, ggplot2:::scales_map_df, scales = npscales),正是其中的scales_map_df函数出错...我们先看一下第一个问题: # 删除刚才定义的ggplot_build.gg函数,让其重新处于未修复bug的状态 rm(ggplot_build.gg) # 先将函数ggplot_build.ggplot...也不是不可以,但是首先是工作量太大,手动去创建一个cnetplot.enrichResult并把其中的I函数位置给修改掉,然后再根据clusterProfiler::cnetplot的调用栈进行函数修改...然后将ggplot_build.ggplot函数退出debug模式(记得再运行一下刚才的rescale.AsIs函数的定义)。
这个R包是ggplot2的扩展包,应用起来简单明了,下边就给大家详细测试下,看看是不是那么美,那么好!...默认情况下,"gseqlogo"将尝试猜测序列类型。可以通过seq_type选项显式设置序列类型。...ggseqlogo"将接受序列或矩阵的命名列表。列表的名称将用作facet标题。...ggseqlogo(seqs_dna, ncol=4) #ncol为每行的列数 自定义序列编码高度 可对每个编码高度度量进行定义,只需创建一个矩阵,其中每个单元格都是所需的高度,并将该方法设置为custom...(f) }) do.call(gridExtra::grid.arrange, c(p_list, ncol=2)) logos 注释 在ggseqlogo中,用ggplot2将注释覆盖到序列标志上是很简单的
library(ggplot2) library(ggrepel) temp<-test[which(test$X=="intersect"),] library(Cairo) CairoJPEG("crosstalk.jpeg...",width=7200,height=4800,res=1200) ggplot(test) + geom_point(aes(x=test$Symbol,y=test$log2FoldChange.C2...element_blank()) 去掉X轴坐标 theme(axis.text.x=element_blank()) 去掉X轴刻度尺 theme(axis.ticks.x = element_blank()) 去掉X轴标题...upset,查一下函数的输入情况,发现是如下的这样的矩阵 于是我们要整理出一个横轴是基因名,纵轴是通路的矩阵,用0和1填充,表示有或没有。...library(UpSetR) ##所有的基因名 allgs<-unique(df$Symbol) ##do.call这个函数会一直重复lapply运算 ulapply
本文将分别使用循环方式 和ezcox进行批量单基因生存分析,以及使用ggplot2 和forestplot绘制单因素生存分析森林图。...( univ_formulas, function(x){coxph(x, data = module_expr.cox)}) # 提取结果 univ_results lapply(univ_models...三 绘制森林图 对于单因素的结果,经常出现的可视化方式就是绘制森林图 。可以使用经典的forestplot-R包绘制(封装),或者使用ggplot2绘制(自由设置)。...grid=T, lwd.xaxis=2,#X轴线宽 title="Hazard Ratio", xlab="",#X轴标题...forestplot 查看 或者 R-forestplot包| HR结果绘制森林图 2, ggplot2 方式绘制自由度较高,需要对ggplot2有基本的了解,ggplot2|详解八大基本绘图要素 ggplot
比如下面这种: 其实简单的R 拼图,我喜欢patchwork 的加减乘除。但这种4x4 布局的图片,对象又多,一个个创建不现实;代码写起来,也非常不优雅。 如果可以批量作图 + 批量拼图就好了。...也就是说,我们可以使用lapply 等循环操作,把一个个绘图对象保存到一个列表。再传递给对应的绘图函数。...关于包含ggplot 对象的列表,通过参数plotList 传入: ★(optional) List of plots to display....(umap_list, byrow = T, nrow = 3) 2-直接使用管道 这个个人认为更为优雅一些,如果拼图使用的绘图对象无需保存,我们直接利用管道符号,将ggplot 对象传递给拼图函数...= 3) 更复杂的内容 比如不同的拼接比例等等内容,可以参考:[[88-R可视化20-R的几种基于ggplot的拼图解决方案]] 如果是cowplot 用户,可以参考:Aligning plots •
progress.bar 的`create_progress_bar`函数创建一个进度条,plyr包中 progress.bar...图1 第二种方法:apply家族——lapply 当测试的循环数较少或单任务耗时较少时,apply家族并不比循环具有效率上的优势,但一旦比赛由百米变成了马拉松,apply家族的优势就展现出来了,这就是所谓的路遥知马力吧...K折,lapply先生成了如图1 中randomtree(j)以及kcross(i)序列; 然后写cvtest函数,计算不同的j和i的情况下,预测值、实际值,然后将i和j的值,cbind合并上去。...1、自备绘图函数——自备添加主副标题的函数 title_with_subtitle = function(title, subtitle = "") { ggtitle(bquote(atop(....,剔除非整理变量,折数i,然后计算每组的平均值,三个指标做透视表求取均值; melt函数将数据表从wide型转化为long型,便于ggplot2做图; as.num(as.character)用于将原来为整数类型变量转化为因子变量
() 展示分割的画布 pushViewport() 将新建的viewport推出去,即将工作区域切换到新的viewport popViewport() 将当前的viewport删除,其父viewport...viewport拆分为子区域 layout.pos.row 创建的viewport在父节点layout的行位置 layout.pos.col 创建的viewport在父节点的layout列位置 nrow...(layout.pos.row = 2, layout.pos.col = 1)) # 将p2输出到左下角# 添加主标题和分标题 grid.text(label="我是主标题",x = 0.5,y =...# 最终组合,由4个图拼图而成,只有右上角的图已经将标注移除了 grid.arrange(hist_top, empty, scatter, hist_right, # 按从左到右,从上到下顺序排列4...把绘图对象添加到列表总,并把该列表传递给grid.arrange()函数中的grobs参数 library(ggplot2) library(gridExtra) library(lattice) #
展示的用的是DT,专门用于显示表格数据,如下图所示: 3 创建离群值函数 目的在于返回一些离群值,用在后续的可视化内容中。...2 返回离群值的索引,即x值大于的观测值的Q3+1.5(Q3-Q1),或小于Q1-1.5(Q3-Q1) 这里也可以熟悉一下R语言函数的创建方法,如下: get_outliers <- function...可见, 第1行中,进行 数据集和变量的确认; 第2行,利用stat_density绘制密度曲线, 第3,4行,利用geom_point将离群值添加,并设置了点的形状; 第5行,为x,y轴添加名称; 第...欢迎关注,海数据在线 添加微信”xiaohaima360“,邀你进学习交流群 有机会获得技术大咖的指导 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
作为ggplot2的拓展包,ggtree可以充分利用ggplot2来进行系统发育树的注释和美化,做出更加丰富多彩的图形。...⑴系统发育树及其注释的可视化 常用的系统发育树为newick格式,在这里我们以FastTree创建的系统发育树为例。...首先我们可以简单的将系统发育树可视化: library(ggplot2) library(ggtree) #加载需要的软件包 tree=read.tree("top50_OTUs_with_genus.tre..., each=length(colnames(table))-1), value=count1, Group=rep(colnames(table)[-1])) #将数据矩阵转换为ggplot2作图所需要的格式...(1:50, function(x) {y=count1[(n*(x-1)+1):(n*x)]}) #将矩阵转换为list系列 bar=lapply(otu, function(y) { rcount
还原 } } } 现在只有一个问题,就是如何将这个fix bug代码添加到ggplot_build.ggplot函数中。...由于这个函数的源码在ggplot2包中,现在是没办法直接修改这个函数的源码的,但是我们可以再创建一个ggplot_build.ggplot函数去覆盖原来的函数,只需要保证新建的ggplot_build.ggplot...+ geom_point() class(p2) #[1] "gg" "ggplot" 于是我们就可以利用S3类方法的分发机制,创建一个ggplot_build.gg方法,这样就可以保证我们创建的方法一定是优先调用的...: 这个函数的源码直接复制于ggplot2:::ggplot_build.ggplot源码,并添加了上述所说的fix bug代码,由于是自己创建的函数,需要将原本属于ggplot2的函数全部改成绝对引用...甚至是上述思路并不局限于ggplot2对象,因为S3类的class属性是可以编辑的,所以完全可以将原来的S3类对象定义成一个多了一个优先类名的S3类。
-利用循环实现ggplot批量作图并拼图]] 最近有同学在后台向我提问,如何能够把原本拼图的间隙调小一些。...也就是借助行列调整,亦或是design 的参数,调整所有图在画布上的比例,比如: p_list lapply(1:4, function(x) {p1}) design <- " 122...除了设定design外,还可以通过创建空对象的方式,将其按照某种规则与其他图像排列。 添加空的元素增加间隙 比如我们有: 我们可不可以不借助design,手动插入这些空隙呢?...比如我们创建NULL 或者空的ggplot() 白版。 接着,我们需要在 1x2 1x2 的位置加入这些白板,形成空隙的视觉。而且它需要按照顺序插入到我们用于排列的列表对象中。...,默认下的ggplot 对象,其边缘就是会存在一些空白的: 因此我们需要适当地让它们大一点。
cowplot包提供了很多函数用于注释图形,包括图形下方的注释,图内数学表达式,组合图的总标题等。因为ggplot2 v2.2.0本身就支持这些特性,所以推荐优先使用ggplot2本身的方法。...在最后一行代码中,rel_heights的值需要合适地选择以让图形的标题看起来正确。此处,标题占据了整个图形9%的高度(0.1/1.1)。...为了说明如何使用add_sub(),我们先创建一个图形: p1 ggplot(mtcars, aes(mpg, disp)) + geom_line(colour = "blue") + background_grid...最后,我们也可以将注释移动至图形内部。注意坐标x是相对于图形板左边边界的度量,而y是相对于已经添加到图形下方的空间(有点疑惑,需要尝试才知道),它们不是以绘制的数据度量的。...这保证了多个数据不同的图形可以将注释绘制在相同的位置。
安装方式可以将单个包作为变量传输进入,也可以以向量模式传递多个包。...我们可以通过 installed.packages函数判断,并使用lapply函数分次安装所有的R包。...构建函数,使其具有如下功能:判断未安装R包;使用 install.packages或BiocManager::install函数安装来源你不同的R包;用lapply分别加载R包,并不输出加载过程中产生的信息...installed_packages], install.packages) }else{ lapply(packages[!...")librarian::shelf(ggplot2, DESeq2)
GSEA首先将基因在样品中的差异倍数值(logFC)由大到小排序,然后判断来自功能注释等预定义的基因集或自定义的基因集中的基因是富集在这个排序列表的顶部还是底部,如果在富集顶部,则该基因集是上调趋势,反之...分析其实由三个图构成,GSEA分析的runningES折线图 # 还有下面基因的位置图,还有所谓的蝴蝶图。...",#标题 base_size = 15,#字体大小 color = "green",#线条的颜色 pvalue_table = TRUE...)library(enrichplot)gesa_res=kk@result###画出每张kegg通路lapply(1:nrow(down_kegg), function(i){ gseaplot2...Prion disease",#标题 base_size = 15,#字体大小 color = "green",#线条的颜色 pvalue_table
❝文献标题:Single-cell sequencing of rotavirus-infected intestinal epithelium reveals cell-type specific.../GSE169197/',pattern = '^GSM') #执行这一步需要解压tar -xvf samples=str_split(fs,'_',simplify = T)[,1] lapply(...paste0("GSE169197/", str_split(y[1],'_',simplify = T)[,1]) dir.create(folder,recursive = T) #为每个样本创建子文件夹.../GSE169197' sceList = lapply(samples,function(pro){ #pro=samples2[2] print(pro) sce =CreateSeuratObject...(reshape2) # 使用的函数 melt & dcast library(dplyr) library(ggplot2) tb=table(phe$celltype, phe$
❝本来这周打算把上周欠下的NMF复现做一下,今天尝试了一下没有成功做出来,出了点小问题。 正好群里有小伙伴问能不能复现一下这篇文献,就来简单复现一下。...❞ 文献标题: 文献数据集: 导入数据 rm(list=ls()) options(stringsAsFactors = F) library(Seurat) library(ggplot2).../raw/',pattern = '^GSM') #执行这一步需要解压tar -xvf samples=str_split(fs,'_',simplify = T)[,1] lapply(unique...folder=paste0("raw/", str_split(y[1],'_',simplify = T)[,1]) dir.create(folder,recursive = T) #为每个样本创建子文件夹.../raw' sceList = lapply(samples,function(pro){ print(pro) sce =CreateSeuratObject(counts = Read10X
由于我们将此图层添加到最上层(即代码的最后),因此更改的任何细节都会覆盖在theme_bw()中的设置的。在这里,将轴标签和轴刻度标签的大小增加到默认大小的1.5倍。修改文本大小使用rel()函数。...添加图层xlab()和ylab(),改变x轴和y轴的标签。将这些图层添加到当前图中,x轴标记为“年龄(天)”,y轴标记为“平均表达量”。 使用ggtitle图层为绘图添加标题。...将轴标签的大小更改为默认值的1.5倍。 将轴文本的大小(刻度线上的标签)更改为比默认值大1.25倍。 以与更改轴文本大小相同的方式更改绘图标题的大小,使用plot.title。...在R的术语中,输出被定向到特定的输出设备,并指示输出文件的格式。必须创建或“打开”设备才能接收图像输出,对于在磁盘上创建文件的设备,还必须关闭设备才能完成输出。 将散点图输出成pdf文件格式。...然后我们使用刚刚创建的ggplot散点图将图像绘制到设备上。
在BBC数据团队开发了一个R包,以ggplot2内部风格创建可发布出版物的图形,并且使新手更容易到R创建图形。 例如: ? 加载所有所需的R语言包 通常在R中创建图表需要安装和加载某些软件包。...bbc_style()没有参数,并且在创建绘图后将其添加到ggplot“链”中。...它本质上修改了ggplot2的主题功能中的某些参数。例如,第一个参数是设置绘图标题元素的字体,大小,字体和颜色。...例如,下面的代码片段将创建具有4行的图例: + guides(fill = guide_legend(nrow = 4, byrow = T)) 更改图例符号的外观 可以通过将参数override.aes...将左对齐标签添加到条形图 如果您想为条形图添加左对齐标签,只需根据数据设置x参数,而是直接使用数字值指定y参数。y的确切值将取决于数据范围。
领取专属 10元无门槛券
手把手带您无忧上云