我的矩阵由0到100之间的值组成,尺寸为100 x 100。 我基本上想要绘制这个矩阵,但是将所有值都高于50例如红色和以下蓝色。最重要的是,我想添加一个漂亮的grayisch网格,就像他们在这里用ggplot做的那样:
我想知道实现这一目标的最简单方法是什么?我不确定我是否想尝试ggplot,因为它看起来很复杂到目前为止我所看到的。对于这样的任务,还没有其他简单的情节函数吗?
答案 0 :(得分:6)
在基础图形中它只是:
image(x, col=c("red","blue")[1+(x>50)] )
添加网格使用:
grid(nx=100, ny=100, lty=1)
答案 1 :(得分:4)
如果您的数据位于矩阵中并且您需要热图类型图,我不能100%确定。或者,如果它是某种其他形式,并且您想要一个像您链接的那样的散点图。我只是假设您的数据与描述的一样,并且您需要热图。我想它是这样的:
x=abs(rnorm(100*100,50,25))
x=matrix(x,nrow=100)
所以我会重新整形数据,因此它看起来像xy坐标:
require(reshape2)
require(ggplot2)
x1=melt(x)
names(x1)=c("x","y","color")
然后我会把我的截止变成一个因素:
x1$color=factor(x1$color>50)
levels(x1$color)=c("lessthan50","more than 50")
然后用:
调用ggplotqplot(x, y, fill=color, data=x1,geom='tile')
答案 2 :(得分:0)
你可以使用levelplot
来做到这一点x <- abs(runif(100*100,0, 100))
x <- matrix(x,nrow=100)
levelplot(x, cuts=1, col.regions=c("red", "blue"))