yihui 这个很有同感。我学不会 ggplot2 的主要原因就是 ggplot2 作图的细节调整太难。
科研工作的主要内容就是发表论文,而论文投稿后,审稿人会提出五花八门的修改意见,包括对插图的细节调整,有时候很变态,有时候很无聊。在不影响内容的前提下,照做才能顺利通过,死扛的话可能会被拒稿。
有一次,有个审稿人要我减少相邻子图之间的间距,或者共用同一个纵轴的刻度和 ylab。
还有一次,有个审稿人是色盲,要求更改图中某几个点的颜色。
这个事儿在基础作图里信手拈来,但是 ggplot2 里,因为不熟,还得去 google,还得去提问,活活把重点从自己研究的“道”歪到了作图这个“术”上。
然而即使这样还不一定能解决。比如有人问双坐标轴的问题,Hadley 本人就回复说 ggplot2 不可能做。那我总不能对审稿人说,我画不了,因为作图软件不支持,来,咱们放下大气污染的问题,先讨论一下双坐标轴的弊端吧。
推崇 ggplot2 的人经常说, ggplot2 做出的图,如果用基础作图函数来做的话会非常繁琐。然而反过来也一样:基础函数作出的图, 用 ggplot2 实现起来也会很繁琐。当然, ggplot2 确实很美,然而判断美丑有很大的主观成分(当然,除了一些通用的标准外)。我说“美”,但审稿人和老板说“改”,这样就很惨。
我觉得 ggplot2 适用于那些自己说了算的场景。老子就这么画,意思表达清楚就行了,细节靠边站。然而现实是经常身不由己。就好比用 LaTeX 的员工遇见了个用 MS Word 的老板,就算生成的 pdf 再漂亮,老板一句“把你的修改稿用修订模式发给我”就足足打消了深究 LaTeX 的动力。
一句话:ggplot2 是适合老板级人物使用的包……