我有大二进制矩阵(0,1),我想要将它可视化,以便我的矩阵的每个条目都是图中的一个像素。
我使用image()
函数,但它不能像我预期的那样工作。
我希望如此,因为最后一行条目都是零,那么我应该在图像的最后一行看不到白色像素。
这是我尝试使用其输出的简单示例:
a <- list(c(0,1,1,0),c(1,1,0,0))
b <- matrix(unlist(a),ncol=2)
> b
[,1] [,2]
[1,] 0 1
[2,] 1 1
[3,] 1 0
[4,] 0 0
答案 0 :(得分:4)
当image
绘制输入矩阵的逆时针旋转时,您必须将其转置然后翻转才能正常绘制:
tb <- t(b)
ftb <- tb[ , ncol(tb):1]
现在,如果您不喜欢默认颜色,可以使用自定义颜色,例如0为灰色,1为红色。同样使用等于1的asp
会使图像的每个像素成矩形(来自@ koekenbakker的评论)。
image(x=1:2, y=1:4, ftb, col = c("grey", "red"), asp = 1)
答案 1 :(得分:2)
我不知道image()函数,但你可以用这样的EBImage包来做到这一点。
a<-list(c(0,1,1,0),c(1,1,0,0))
b<-matrix(unlist(a),ncol=2)
library(EBImage)
x <- as.Image(b)
display(x,method='raster')