首页 > 解决方案 > ggplot和R中的基本图有什么区别?

问题描述

为了在 R 中绘制图形,我通常使用包中的基本 plot plot()barplot()boxplot()... 函数graphics。但ggplot似乎更经常使用。

在选择使用哪一种图形时要考虑的两种图形之间的主要区别是什么?

标签: rplotggplot2

解决方案


基本绘图范例是“纸上墨水”,而latticeggplot范例基本上是编写一个程序,该程序使用grid-package 来完成到目标图形设备的低级输出。(参见?Devicesgrid包的作者写了一本优秀的书,“R Graphics”。(参见help(pac=grid)ggplot-paradigm 具有“图形语法”的灵感,并试图将各种不同的绘图功能集成到一个逻辑连贯的包中。它确实需要加载ggplot2包,而 R 启动时已经加载了graphics和包。和函数在函数内部使用时grDevices都需要使用显式调用。ggplot2latticeprint

随着ggplot2您将该函数的结果分配给对象名称,然后进一步修改它。当它准备好“发布”时,您会处理输出并将其发送到带有print. “ggplot”图形通常通过将“层”添加到使用qplotggplot通过使用- 函数创建的基本图来逐步修改+.gg。请参阅?ggplot2::`+.gg` (多年来,ggplot2 的帮助页面会向您推荐,?layer但是当您到达那里时,基本上是空的。他们修复了这个问题……大约十年后。)

base-graphics 的情况下,没有保存结果的 R 对象。命令立即得到处理并刻在当前设备的“纸”上。然后,您发出进一步的命令来增加该设备上的输出。该软件包提供了使用-graphics 范例plotrix开发高级绘图工具的一个很好的例子。base

ggplot2-functions与base和graphics 函数的一个主要限制lattice是 ggplot2 没有任何 3D 绘图函数。然而lattice,-package 并没有得到积极的维护,但在积极的开发停止时它似乎相当成熟,如果你发现一个错误,它可能会被修复。有扩展 lattice 和 ggplot2 功能的gridExtra和包。latticeExtra现在还有一个gridBase包支持将基础绘图结果保存为网格“grob”,然后合并基础和网格,即latticeggplot输出。确实,“ggplot”范式似乎是近年来更持续活动的目标。


推荐阅读