r - ggplot和R中的基本图有什么区别?
问题描述
为了在 R 中绘制图形,我通常使用包中的基本 plot plot()
、barplot()
、boxplot()
... 函数graphics
。但ggplot
似乎更经常使用。
在选择使用哪一种图形时要考虑的两种图形之间的主要区别是什么?
解决方案
基本绘图范例是“纸上墨水”,而lattice
和ggplot
范例基本上是编写一个程序,该程序使用grid
-package 来完成到目标图形设备的低级输出。(参见?Devices
)grid
包的作者写了一本优秀的书,“R Graphics”。(参见help(pac=grid)
)ggplot
-paradigm 具有“图形语法”的灵感,并试图将各种不同的绘图功能集成到一个逻辑连贯的包中。它确实需要加载ggplot2
包,而 R 启动时已经加载了graphics
和包。和函数在函数内部使用时grDevices
都需要使用显式调用。ggplot2
lattice
print
随着ggplot2
您将该函数的结果分配给对象名称,然后进一步修改它。当它准备好“发布”时,您会处理输出并将其发送到带有print
. “ggplot”图形通常通过将“层”添加到使用qplot
或ggplot
通过使用- 函数创建的基本图来逐步修改+.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”,然后合并基础和网格,即lattice
或ggplot
输出。确实,“ggplot”范式似乎是近年来更持续活动的目标。
推荐阅读
- vue.js - 获取按钮的值(vuejs)
- python - 如何修改python终端显示的小数位数?
- c++ - CGAL:为什么半平面用六条射线来表示?
- html - 如何使用 css 创建一个三列网格?
- autohotkey - 美式键盘中带有撇号的轻松输入重音标记
- vue.js - PC 网站也可以使用 Vue Bootstrap 吗?
- matlab - matlab中K-medoids的曼哈顿距离
- python - bash:sqlite3:找不到命令
- vba - 创建 VBA,返回在 Google 和 microsoft edge 中搜索前 5 个搜索结果
- system-verilog - 如何使用另一个随机参数随机化参数?