51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

赞(6)
未经允许不得转载:工具盒子 » ggplot2的aes和aes_string