查看原文
其他

R画图已入门,怎样进阶?

小丫 YuLabSMU 2022-09-20

想学画图、数据处理,先学哪些R包?看哪些书?》推荐了两本书,帮你入门,今天小丫来Y叔叔这里班门弄斧——谈谈目前我找到的进阶之路,请Y叔点评。


画图系统


R画图,常见两种画图系统:

  1. 基础图形系统,俗称base,以为自己没用R包,其实有个幕后英雄——R包graphics

  2. 网格图形系统,R包grid。常见的ggplot2、pheatmap、complexheatmap,都基于这个画图系统。


理解了画图系统的概念,找起资料就有章可循了。


基础图形系统的进阶


STEP1:看例子,demo(graphics)


STEP2:学函数的用法,library(help = "graphics")。或者看网页版http://search.r-project.org/R/library/graphics/html/00Index.html


STEP3:跟着R包里的函数学习,看R包里的画图函数是怎样一步步实现的。例如做lasso时用到的glmnet包,自带的画图函数不完美,琢磨怎样改才能达到自己想要的效果,在改的过程中学习和理解。


网格图形系统的进阶


STEP1:ggplot2进阶,从《R数据可视化手册》知其然,从《ggplot2:数据分析与图形艺术》知其所以然。


STEP2:grid进阶,读《R绘图系统》,最早是看到Y叔推荐,吃灰两年,终于等到小丫开窍。最近作者用grid重写了base graphics,函数名相同,两个系统的语言对比着看,快速理解grid。
https://github.com/pmur002/gridgraphics/tree/master/R

STEP3:跟着白话文实践。在biobabble里搜grid,结合实例进一步理解,融会贯通。例如:
树变图,图变树?
听说你想把Gviz画的基因结构转成ggplot?

STEP4:跟着R包学。ggtree是个活教材,还有电子书:
https://yulab-smu.github.io/treedata-book/

画图要我说,就是多画着玩。另外提到基于grid的包,我觉得不能漏了lattice

往期精彩

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存