意外地从R“图像”功能转换了翻转输出

时间:2012-04-12 13:05:36

标签: r image matrix transpose

说我有一个矩阵:

m<-matrix(1:5,4,5)
m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    4    3    2
[2,]    2    1    5    4    3
[3,]    3    2    1    5    4
[4,]    4    3    2    1    5

现在,当我做

image(m)

我得到意想不到的输出。所以我需要这样做:

image(t(m)[,4:1])

以“正确”的方式获得它。有什么意义?

2 个答案:

答案 0 :(得分:6)

从帮助文件中:

  

请注意,图像将z矩阵解释为f(x [i],y [j])的表   值,使x轴对应行号,y轴对应   列号,底部是第1列,即90度   逆时针旋转传统的印刷布局a   基质

答案 1 :(得分:6)

其他人已经指出,你所看到的与文档一致,这里有几个关于它为什么这样做的想法。

图像功能最初并非设计用于绘制图像/图形,而是以图形方式表示表格信息,因此事物的排序旨在与其他图形理想保持一致,而不是确保剪贴画看起来正确。这意味着图像的旋转和镜像不会使其“错误”,它只是一个不同的视图,并且选择了遵循绘图规则的视图。

它还尝试与其他图形功能及其所基于的理念保持一致。对于散点图,我们使用plot(x,y)并将x作为水平轴,但是当我们执行table(x,y)时,x变量会形成结果表的行。这两个事实都与通常的做法一致(解释变量通常是表中的行变量,因为数字更容易垂直比较)。因此,图像函数使用矩阵的行(如果来自表函数,则为x变量)作为横轴上的预测变量/解释变量。通常情况下,地块中的数值从左到右,从下到上增加(但在表格中,从上到下增加更为常见)。