【问题标题】:How can you create Marginal Histogram Scatterplot using lattice package (not ggplot2)?如何使用 lattice 包(不是 ggplot2)创建边际直方图散点图?
【发布时间】:2020-09-12 17:55:37
【问题描述】:

长话短说,我正在为一门数据可视化课程做作业,作业指定我们必须使用 lattice 包,并且我们必须创建边缘直方图散点图。 (我知道询问家庭作业问题是不受欢迎的,但我并不是要你为我写作业——只是寻求指导或至少是一个开始的方向)。

我们的讲座和书没有提到任何关于边际直方图散点图的内容,虽然讲座展示了如何使用 R 中的标准绘图函数创建它们以及如何使用 ggplot2 来创建它们,但我们被告知不要使用任何一个。我以前从未使用过 lattice,当我寻求帮助时,我得到的一般性回应根本没有帮助。

注意:我没有发布问题或我必须使用什么类型的数据,因为我不是在这里寻找作业的答案。只是一些关于从哪里开始的帮助。如果你想展示一个例子,你可以直接使用任何数据。

【问题讨论】:

  • 家庭作业问题在 stackoverflows 政策的限制范围内。曾经表现出相当大的努力的人通常也不会被皱眉。涉及这些问题的一般准则是: 展示您所做的事情。询问您的代码为什么不起作用(例如,要求指导而不是作业答案),并期望答案只是部分解决方案。
  • 您可能会发现以下简短的教程信息丰富:tutorialgateway.org/lattice-histogram-in-r(如果我正确理解您的问题,最后一个示例将是最直接适用的)

标签: r lattice


【解决方案1】:

这在 lattice 中也绝对是一个棘手的问题。 ggplot2 成为更受欢迎的软件包之一,而 lattice 仍然非常强大,有很多令人信服的原因。由于这是可视化课程的一部分,我假设您打算提出类似于ggMarginal 的东西。为此,您必须花一些时间在格点图上调整 margins。

作为我如何解决这个问题的指导方针,我找到了一个答案:

  1. 在 google 上搜索 lattice margin histogram,第二个 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, split = c(1, 1, 1, 2))

  1. 走到这一步之后,就是要弄清楚实际发生了什么。上面的链接建议查看?plot.trellis,这里的重要性似乎是我们如何移动我们的地块,这似乎是由split 控制的。查看文档 (?plot.trellis) 我们可以帮助我们了解如何使用此参数

一个由 4 个整数组成的向量 c(x, y, nx, ny),表示将当前绘图定位在 ny 绘图的常规数组 nx 中的 xy 位置。 (注:原点在左上角)

从这里我们拥有创建边缘图所需的一切,如果我们将其设为2x2 图,我们将在c(1, 1, 2, 2) 放置一个直方图,在c(2, 1, 2, 2) 放置一个散点图,在@987654339 放置另一个直方图@。当然,这不会是最好看的边际图,为此您必须使用margins 或深入了解并使用grid 包手动设置图。我会说这绝对是“下一个级别”的事情。

注意:

在上面的示例中,如果您想更紧密地复制ggMarginal,我没有介绍如何旋转一个直方图,或者如何创建横向直方图。
此外,正如您所说,您在查找这方面的信息时遇到了一些问题。寻找答案的另一个选择是阅读?histogram 文档页面。此页面中有几个示例(以及许多其他示例)展示了如何操纵lattice 绘图的位置。

【讨论】:

    猜你喜欢
    • 2019-10-23
    • 2020-08-11
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    相关资源
    最近更新 更多