【问题标题】:Is there a way of forcing the image function in R not to normalize coordinates?有没有办法强制 R 中的图像函数不对坐标进行归一化?
【发布时间】:2012-11-07 11:46:44
【问题描述】:

在 R 中使用 image 函数时,它会标准化输入矩阵的维度长度,因此 X 和 Y 轴从 0 变为 1。

有没有办法告诉image 函数不要标准化这些数字?

我需要这样做才能覆盖不同类型的数据并将所有这些坐标标准化到 [0,1] 空间中是非常乏味的。

编辑:格雷格提供的答案解释了这种情况。

【问题讨论】:

  • 这很简洁,但将答案部分与此分开,并将其作为答案发布在这里。
  • 我不同意。功劳归于 Greg,我认为通过将格式更改为答案,对答案的理解并没有任何改善。有什么好处?
  • 好吧,如果它与问题有关(例如,可重现的示例演示了有问题的行为),那么它应该保留在问题中。 但任何回答问题的信息都应该是答案。您仍然可以像以前一样将功劳留给格雷格;尽管如此,发布您自己的解决方案也没有什么问题,但我们希望让事情井井有条。

标签: r image plot default axes


【解决方案1】:

我将根据 Greg Snow 提供的答案来回答我的问题,以遵循本网站的最佳做法,因为任何提供信息的东西都应该是答案。

如果您不向 image() 函数提供 xy 参数,则轴的范围为 0 到 1,如下例所示。

> image(volcano)

然后,如果您想在使用中的矩阵中定位一个兴趣点,对于矩阵的 [x,y] 坐标为 [10,40] 的元素,您需要执行以下操作:

> points(x=10/length(volcano[,1]),y=40/length(volcano[1,]))

如果指定了 xy 参数,并且(如 Greg 所述)它们适合矩阵的维度,则轴将在指定的 xy 向量范围内。

> dim(volcano)
[1] 87 61
> image(x=1:87, y=1:61, z=volcano)

 > points(10,40)

【讨论】:

    【解决方案2】:

    一个可重现的例子在这里会很有帮助。一般来说,如果你只给 image 一个 z 矩阵,那么函数会选择默认的 x 和 y 值,我认为这就是你所看到的。另一方面,如果你给 image 一个 x 向量和一个 y 向量,那么它会使用该信息来构建图形。如果 x/y 向量的长度等于 z 的相应维度,则这些值表示矩形的中心,如果 x/y 比 z 的相应维度长 1,则它们表示矩形的角。这使您可以很好地控制您提到的事情。

    如果这不能回答问题,那么请给我们一个自包含的可重现示例。

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 2013-10-11
      • 2020-10-17
      相关资源
      最近更新 更多