如何轻松可视化矩阵?

时间:2011-07-31 01:28:39

标签: r matrix visualization

在进行矩阵运算时,我希望能够看到计算结果是什么,至少可以大致了解进入和运出的矩阵的性质。

如何绘制实数矩阵,以便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"?

3 个答案:

答案 0 :(得分:18)

您可以尝试(根据您的特定需求调整参数)

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

产生类似

的东西

enter image description here

答案 1 :(得分:7)

请参阅?image查看单个绘图(请注意第1行将位于底部)和?rasterImage,以便为现有绘图添加1个或多个表示。您可能希望首先对矩阵进行一些缩放或其他转换。

答案 2 :(得分:4)

不是答案,而是更长的评论。

我一直在研究使用grid.raster绘制矩阵的包,但它还没有准备好发布。你的例子会读,

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

layout

我发现编写自定义函数可能比调整lattice或基础图形中的10个参数更容易,而ggplot2缺少对轴的控制。

然而,从头开始编写图形功能也意味着重新发明布局和定位等非平凡的东西;希望Hadley的scalesguides包可以让这更容易。当整体设计看起来合理且更稳定时,我会将功能添加到gridExtra