R中的绘图包之间的关系

时间:2010-09-20 09:33:21

标签: r visualization plot ggplot2 lattice

我刚刚开始使用R,并开始制作图表。我知道至少有三种不同的绘图包,标准的,ggplot2和格子。

这些包装是否具有互补性,或者它们是否覆盖相同的基础?如果它们是互补的,我什么时候使用它们?如果它们覆盖相同的地面,作为一个新的R用户我应该选择哪一个,将我的精力投入掌握?

2 个答案:

答案 0 :(得分:24)

有4个绘图系统。有标准,网格,格子和ggplot2。后两者是建立在前两者上的更高级别的系统。每个都有优点和缺点。

标准图形让您可以完全控制绘图,并且可以按照您喜欢的方式制作一个绘图。莱迪思的开发是为了解决你需要数组图的情况。它非常灵活,可以绘制数据和任何变量的大部分功能。如果你想要一个任意的功能应用于每个主题的数据并呈现为一个图的网格,格子是你的宝贝。它建立在网格上,几乎是任何人使用网格包的唯一方式。

最新的一个,ggplot2,既是图形包,也是图形化的新理念。它基于威尔金森的“图形语法”,试图做到这一点,为图形生成语法。人们只需要学习更高层次的语法,如geom(你绘制的是什么),stat(数据统计),facet(单个面板),你可以构建非常复杂的图形。它们通常非常可爱,尤其适用于电子配送。遗憾的是,无法精确控制每个细节。有些事情你根本无法调整。也就是说,许多人得出的结论是,用简单的方式来描述高质量的地块是一个很小的代价。

查看ggplot2的一些默认和示例图。如果他们吸引你,那么我建议你从那里开始。如果可以,尝试通过基本语法方法学习如何做。我个人认为Hadley将便利功能作为网站的主要帮助是一个错误。这似乎破坏了ggplot2的整个目的。缩略语法作为帮助的主要界面,但本书全部是关于哲学和基本语法。

(我说的是,但是我完成了大部分基础图形绘图,因为我觉得构建图形的每个组件都很有趣。)

答案 1 :(得分:7)

这三个包实际上是三种不同的绘图概念。标准绘图设备如果你知道你正在做什么就会很快,而且在我的眼里 - 在所有命令都处理图形的特定元素(绘图,标题,轴,标签,图例......)的意义上相当直观。 )。这些图在布局上非常灵活,我发现它们对大多数标准统计绘图和相当直接的2D图都很有用。

莱迪思是一种基于网格的绘图设备,可以提供更大的灵活性。你可以基本上绘制你想要的任何东西,如R Graph Gallery所示。图也可以注释。格子是 - 在我看来 - 对可定制的高端图非常有用。我主要在制作彩色地图,3D可视化和我的数据的不同子集的组合图形时使用它(例如在模型构建中,用于不同术语的效果)。另请参阅Using lattice graphics in R

ggplot2实际上是尝试将两个系统的优点结合起来:您保留了网格的大部分灵活性,但是您可以像使用标准绘图一样处理容易定义的图形对象。图形输出通常比标准包装中的标准设置更好看,并且比使用格子更少麻烦。就个人而言,我对ggplot2只有很少的经验,但它看起来绝对有前途。我仍然更喜欢基本图形包,但这可能更多地与我习惯于那个的事实有关。老猴子和新技巧以及所有......

基本上,我会说你感觉最舒服。我肯定至少可以学习标准软件包的基础知识,但是从那里我想ggplot2可以为你提供所需的一切,如果你不进入高调的图形。如果你真的想制作定制的复杂图形,那么了解晶格只能帮助你。但除此之外,其他两个提供了你需要的一切,而且使用起来相当直接。