提取umap坐标和metadata信息
reduction_loci <- as.data.frame(Embeddings(pbmc, reduction="umap"))reduction_loci <- cbind(reduction_loci, pbmc[[]])通例使用aes的画法:
p <-ggplot(reduction_loci, aes(x=UMAP_1,y=UMAP_2))pal <-colorRampPalette(c("lightgrey","purple"))p1 <-p + geom_point(aes(color=nCount_RNA)) + scale_colour_gradientn(colors=pal(500)) + theme_classic()p1
假如想要绘制其他参数,只必要更改x和y即可,非常简单。但是假如我们实现了一个模子,内里的特性特别多,总不会每次想看其他特性,都要修改代码,这显然不科学,以是我们以传参的情势,把上面的代码改成如下:
args=colnames(reduction_loci)x=args[1]y=args[2]p <-ggplot(reduction_loci, aes_string(x=x,y=y))pal <-colorRampPalette(c("lightgrey","purple"))p1 <-p + geom_point(aes(color=nCount_RNA)) + scale_colour_gradientn(colors=pal(500)) + theme_classic()p1##跟上面的图是一样的注意在这里就使用了 aes_string 更换 aes。由于 Rscript 传入的参数是字符串,我们要使用字符串映射变量。也就是说,aes_string是aes的参数化。
22.7.18更新:
看到生信技能树昨天推送了一篇相干文章,也可以资助明白这两个函数:ggplot的aes和aes_string的差异 |