可视化和旋转矩阵

时间:2013-09-02 16:02:52

标签: r matrix visualization

我试图想象一个大约500x500的上三角矩阵。除此之外,我还试图旋转该图像,使其看起来像三角形朝上:

enter image description here

(这是通过拍摄图形设备的快照然后旋转该图像来实现的)。

在该图像中,每列和每行都需要指定宽度。

我尝试将image()函数与grid包一起使用(使用旋转45度的视图面板),但这不起作用。有人知道更好的解决方案吗?

1 个答案:

答案 0 :(得分:4)

这是一种使用基本图形“rasterImage

的简单而愚蠢的方法
plotTriMatrix <- function(x) {
  ## clear lower triangle
  x[lower.tri(x)] <- NA

  ## calculate diag
  nr <- nrow(x)
  nc <- ncol(x)
  d <- sqrt(nr^2 + nc^2)
  d2 <- 0.5 * d

  ## empty plot area
  plot(NA, type="n", xlim=c(0, d), ylim=c(0, d), xlab="", ylab="", asp=1)

  ## plot matrix and rotate 45
  rasterImage(as.raster(x),
              xleft=d2, xright=d2+nc, ybottom=-d2, ytop=-d2+nr,
              interpolate=FALSE, angle=45)
}

示例:

set.seed(123)
m <- matrix(runif(100), 10, 10)

plotTriMatrix(m)

enter image description here