让人纠结的 ggplot2

in #cn3 years ago

R 语言的 ggplot2 包很美很酷。比如,基于 ggplot2 做出的配对儿图是这样的:


而在 ggplot2 出现之前,用基础包和其他包做出来的配对儿图顶多是这样的:


确实差好几条大街。

然而,ggplot2 简单的指令还好办,稍微需要调整一下的作图方法,我始终没法熟练掌握。

我觉得主要原因就是 ggplot2 作图的细节调整太难。

科研工作的主要内容就是发表论文,而论文投稿后,审稿人会提出五花八门的修改意见,包括对插图的细节调整,有时候很变态,有时候很无聊。在不影响内容的前提下,照做才能顺利通过,死扛的话可能会被拒稿。

有一次,有个审稿人要我减少相邻子图之间的间距,或者共用同一个纵轴的刻度和 ylab。

还有一次,有个审稿人是色盲,要求更改图中某几个点的颜色。

这个事儿在基础作图里信手拈来,但是 ggplot2 里,因为不熟,还得去 google,还得去提问,活活把重点从自己研究的“道”歪到了作图这个“术”上。

然而即使这样还不一定能解决。比如有人问双坐标轴的问题,ggplot2 的开发者 Hadley 本人回复说 ggplot2 不可能做。那我总不能对审稿人说,我画不了,因为作图软件不支持,来,咱们放下大气污染的问题,先讨论一下双坐标轴的弊端吧。

推崇 ggplot2 的人经常说, ggplot2 做出的图,如果用基础作图函数来做的话会非常繁琐。然而反过来也一样:基础函数作出的图, 用 ggplot2 实现起来也会很繁琐。当然, ggplot2 确实很美,然而判断美丑有很大的主观成分(当然,除了一些通用的标准外)。我说“美”,但审稿人和老板说“改”,这样就很惨。就好比用 LaTeX 的员工遇见了个用 MS Word 的老板,就算生成的 pdf 再漂亮,老板一句“把你的修改稿用修订模式发给我”就足足打消了深究 LaTeX 的动力。

我觉得 ggplot2 适用于那些自己说了算的场景。老子就这么画,意思表达清楚就行了,细节靠边站。体现到研究工作里,适合用于数据的初步可视化、海报和口头报告、讨论等,但不适合我这个领域的正式出版物,除非精通到指哪儿打哪儿。



Posted from my blog with SteemPress : http://dapengde.com/archives/19795
Sort:  

恭喜你!您的这篇文章入选 @justyy 今日 (2018-10-27) 榜单 【优秀的文章】, 回复本条评论24小时内领赏,点赞本评论将支持 @dailychina 并增加将来您的奖赏。

Congratulations! This post has been selected by @justyy as today's (2018-10-27) 【Good Posts】, Steem On! Reply to this message in 24 hours to get rewards. Upvote this comment to support the @dailychina and increase your future rewards! ^_^

Hi @dapeng!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.159 which ranks you at #3051 across all Steem accounts.
Your rank has improved 1 places in the last three days (old rank 3052).

In our last Algorithmic Curation Round, consisting of 244 contributions, your post is ranked at #216.

Evaluation of your UA score:
  • Some people are already following you, keep going!
  • The readers like your work!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server

Coin Marketplace

STEEM 0.49
TRX 0.09
JST 0.062
BTC 49349.63
ETH 4201.86
BNB 573.50
SBD 5.96