我刚刚开始使用 R,并开始制作图表。我知道至少有三种不同的绘图包,标准的,ggplot2 和 lattice。
这些软件包是互补的,还是它们涵盖的领域大致相同?如果它们是互补的,我什么时候使用它们?如果它们涵盖相同的领域,作为 R 的新用户,我应该将精力投入到掌握哪一个?
我刚刚开始使用 R,并开始制作图表。我知道至少有三种不同的绘图包,标准的,ggplot2 和 lattice。
这些软件包是互补的,还是它们涵盖的领域大致相同?如果它们是互补的,我什么时候使用它们?如果它们涵盖相同的领域,作为 R 的新用户,我应该将精力投入到掌握哪一个?
有 4 个绘图系统。有标准、网格、格子和ggplot2。后两者是建立在前两者之上的更高级别的系统。每个都有优点和缺点。
标准图形使您可以完全控制绘图,并且非常适合按照您喜欢的方式制作一个绘图。Lattice 是为了解决您需要绘图数组的情况而开发的。它非常灵活,可以在您的数据和任何变量上绘制大多数函数。如果您希望将任意函数应用于每个受试者的数据并以图网格的形式呈现,那么 lattice 就是您的宝贝。它建立在网格上,几乎是任何人使用网格包的唯一方式。
最新的 ggplot2 既是一个绘图包,也是一种新的绘图哲学。它基于 Wilkinson 的“图形语法”,并试图做到这一点,为图形生成语法。一个人只需要学习诸如 geom(你绘制的内容)、stat(数据统计)、facet(单个面板)等术语的高级语法,你就可以构建非常复杂的图表。它们通常非常可爱,特别是对于电子发行。不幸的是,无法对每个单独的细节进行精细控制。有些事情你根本无法调整。话虽如此,许多人都得出了一个明智的结论,即为描述高质量情节的简单方法付出的代价很小。
查看 ggplot2 的一些默认图表和示例图表。如果他们对你有吸引力,那么我建议你从那里开始。如果可以的话,试着通过基本的语法方法来学习做任何事情。我个人认为 Hadley 将便利功能作为网站上的主要帮助是错误的。它似乎破坏了 ggplot2 的全部目的。缩写语法作为帮助的主要界面呈现,但本书全是关于哲学和基本语法的。
(我这么说,但我的大部分绘图都是在基本图形中进行的,因为我发现构建图形的每个组件都很有趣。)
这三个包实际上是三个不同的绘图概念。如果您知道自己在做什么,标准绘图设备会运行得很快,并且 - 在我看来 - 相当直观,因为所有命令都处理图形的特定元素(绘图,标题,轴,标签,图例,.. .)。这些图表的布局非常灵活,我发现它们对于大多数标准统计绘图和相当简单的 2D 图表都很有用。
Lattice 是一种基于网格的绘图设备,具有更大的灵活性。你基本上可以绘制任何你想要的东西,如R Graph Gallery所示。图表也可以被注释。在我看来,Lattice 对可定制的高端图形非常有用。我主要在制作彩色地图、3D 可视化和我的数据的不同子集的组合图时使用它(例如,在模型构建中,用于不同术语的效果。)。另请参阅在 R 中使用晶格图形。
ggplot2 实际上是一种结合两种系统优点的尝试:您保留了 lattice 的大部分灵活性,但您可以像使用标准绘图一样处理易于定义的图形对象。图形输出通常比标准包中的标准设置更好看,而且比使用 lattice 的麻烦少。就个人而言,我对 ggplot2 的经验很少,但它看起来肯定很有希望。我仍然更喜欢基本图形包,但这可能与我习惯了这个事实有关。老猴子和新把戏等等……
基本上,我会说选择你觉得最舒服的东西。我肯定会至少学习标准包的基础知识,但如果你不进入高调的图形,我想 ggplot2 会为你提供所需的一切。如果您真的想制作自定义的复杂图形,那么了解 lattice 只会对您有所帮助。但除此之外,其他两个提供了您需要的一切,并且使用起来相当直接。