如何使用点阵包而非ggplot2创建边际直方图散点图?

问题描述

长话短说,我正在为一个数据可视化课程分配作业,该作业指定我们必须使用点阵数据包,并且必须创建边际直方图散点图。 (我知道问作业的问题是很烦的,但我并不是要您为我写作业,而只是要求提供指导或至少是开始的方向。)

我们的讲座和书中没有提及有关边缘直方图散点图的内容,尽管该讲座显示了如何使用R中的标准绘图函数创建它们以及如何使用ggplot2进行创建,但告诉我们不要使用它们。我以前从未使用过格子,当我寻求帮助时,会得到一些根本没有帮助的一般性答复。

注意:由于我不是在这里寻找作业的答案,因此我不会发布问题或必须使用什么类型的数据。只是一些关于从哪里开始的帮助。如果要显示示例,可以使用任何数据。

解决方法

这无疑也是一个棘手的问题。 ggplot2成为最受欢迎的软件包之一有很多令人信服的原因,而grid仍然极其强大。因为这是可视化课程的一部分,所以我认为您打算提出类似于ggMarginal的内容。为此,您必须花费一些时间来调整晶格图上的margin

作为如何解决此问题的指导,我找到了执行以下操作的答案:

  1. 在Google上搜索晶格边际直方图,第二个link是对邮件帮助列表的答复,其中提供了类似问题的示例
  2. 打开R并跟随链接成为一个小例子。例如
data(mtcars)
library(lattice)
scatter <- xyplot(hp ~ mpg,mtcars)
hist <- histogram(~ mpg,mtcars)
plot(scatter,more = TRUE,split = c(1,2,1,2))
plot(hist,more = FALSE,2))

split plot lattice

  1. 走了这么远,它涉及到弄清楚实际发生的事情。上面的链接建议您查看?plot.trellis,这里的重要性似乎是我们如何能够绕过由split控制的地块。查看文档(?plot.trellis),我们将获得一些帮助,以帮助您了解如何使用此参数

4个整数c(x,y,nx,ny)的向量,表示将当前图放置在x的常规数组中{{1} }}。 (注意:此商品的原产地位于左上方)

从这里开始,我们具有创建边际图所需的一切。如果将其设为y,我们将在nx放置一个直方图,在ny放置一个散点图另一个直方图位于2x2。当然,这不会是看起来最漂亮的边缘图,您必须使用c(1,2)或在幕后使用c(2,2)包手动设置图。我想这肯定是事情的“下一个层面”。

注意:

在上面的示例中,我没有讨论如果您想更紧密地复制c(2,2)时如何旋转一个直方图或如何创建一个侧向直方图。
另外,正如您所说的,您在查找有关此信息方面遇到一些问题。查找答案的另一种方法是阅读margin文档页面。此页面中有几个示例(以及许多其他示例),它们显示了如何操纵grid绘图的位置。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...