R矩阵图,颜色阈值和网格

use*_*113 4 plot r matrix gridlines

我的矩阵由0到100之间的值组成,尺寸为100 x 100.我基本上想要绘制这个矩阵,但是将所有值都设置为50以上,例如红色,将下面的颜色设置为蓝色.最重要的是,我想添加一个漂亮的grayisch网格,就像他们在这里用ggplot做的那样:

http://learnr.wordpress.com/2009/07/15/ggplot2-version-of-figures-in-lattice-multivariate-data-visualization-with-r-part-5/

我想知道最简单的方法是什么?我不确定我是否想尝试ggplot,因为它看起来很复杂到目前为止我所看到的.这样的任务有没有其他简单的情节功能?

42-*_*42- 6

在基本图形中它只是:

image(x, col=c("red","blue")[1+(x>50)] )
Run Code Online (Sandbox Code Playgroud)

要添加网格使用:

grid(nx=100, ny=100, lty=1)
Run Code Online (Sandbox Code Playgroud)


Set*_*eth 5

我不能 100% 确定您的数据是否在矩阵中并且您想要热图类型图。或者,如果它采用其他形式,并且您想要像您链接到的散点图一样。我只是假设您的数据如所描述的那样并且您想要一个热图。我想它是这样的:

   x=abs(rnorm(100*100,50,25))
    x=matrix(x,nrow=100)
Run Code Online (Sandbox Code Playgroud)

所以我会重塑数据,使其看起来像 xy 坐标:

require(reshape2)
require(ggplot2)
x1=melt(x)
names(x1)=c("x","y","color")
Run Code Online (Sandbox Code Playgroud)

然后我会将我的截止值变成一个因素:

x1$color=factor(x1$color>50)
levels(x1$color)=c("lessthan50","more than 50")
Run Code Online (Sandbox Code Playgroud)

然后调用 ggplot:

qplot(x, y, fill=color, data=x1,geom='tile')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述