问题描述
长话短说,我正在为一个数据可视化课程分配作业,该作业指定我们必须使用点阵数据包,并且必须创建边际直方图散点图。 (我知道问作业的问题是很烦的,但我并不是要您为我写作业,而只是要求提供指导或至少是开始的方向。)
我们的讲座和书中没有提及有关边缘直方图散点图的内容,尽管该讲座显示了如何使用R中的标准绘图函数创建它们以及如何使用ggplot2进行创建,但告诉我们不要使用它们。我以前从未使用过格子,当我寻求帮助时,会得到一些根本没有帮助的一般性答复。
注意:由于我不是在这里寻找作业的答案,因此我不会发布问题或必须使用什么类型的数据。只是一些关于从哪里开始的帮助。如果要显示示例,可以使用任何数据。
解决方法
这无疑也是一个棘手的问题。 ggplot2
成为最受欢迎的软件包之一有很多令人信服的原因,而grid仍然极其强大。因为这是可视化课程的一部分,所以我认为您打算提出类似于ggMarginal
的内容。为此,您必须花费一些时间来调整晶格图上的margin
。
作为如何解决此问题的指导,我找到了执行以下操作的答案:
- 在Google上搜索晶格边际直方图,第二个link是对邮件帮助列表的答复,其中提供了类似问题的示例
- 打开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))
- 走了这么远,它涉及到弄清楚实际发生的事情。上面的链接建议您查看
?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
绘图的位置。