2011-07-31 117 views
13

在做矩阵运算时,我希望能够看到我的计算结果是什么,至少能够粗略地了解进入和运行的矩阵的性质。如何轻松地可视化矩阵?

如何绘制实数矩阵,以便x轴表示列,y表示行,并且点的颜色或大小表示单元格值?

最终,我想显示多个图,例如,方程的右侧和左侧。

下面是一些示例代码:

a <- matrix(rnorm(100), ncol = 10) 
b <- diag(1,10) 
c <- a*b 

par(mfrow = c(1,3)) 
plot.matrix.fn <- function(m) { 
    #enter answer to this question here 
} 
lapply(list(a,b,c), plot.matrix.fn) 

更新时间:自发布这个问题,我发现有一些很好的例子在这里:What techniques exists in R to visualize a "distance matrix"?

+0

看看这篇最近的帖子。 http://stackoverflow.com/questions/6883618/plotting-a-heat-map-for-an-upper-or-lower-triangular-matrix –

回答

17

你可以尝试像(调整参数,以您的特定需求)

image(t(m[nrow(m):1,]), axes=FALSE, zlim=c(-4,4), col=rainbow(21)) 

产生类似

enter image description here

7

单个情节见?image(注意,第1行将在底部)和?rasterImage用于向现有图添加一个或多个表示。您可能想先对矩阵进行一些缩放或其他转换。

+0

这几乎是我所期待的。谢谢! – Abe

4

不是一个答案,但较长的注释。

我一直在打包使用grid.raster来绘制矩阵,但尚未完全发布。你的榜样会读,

library(gridplot) 
row_layout(a, b, c) 

layout

我发现,编写自定义的功能很可能比lattice或基础图形调整的参数10S容易,ggplot2缺乏对轴的一些控制。但是,从头开始编写图形功能也意味着重新设计布局和定位等非平凡的东西;希望Hadley的scalesguides包可以使这更容易。当整体设计看起来合理且更稳定时,我会将这些功能添加到gridExtra