ggplot2的aes和aes_string

提取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的差异

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容