我的基质由0至100之间的值的和具有100×100 尺寸我基本上要绘制这个矩阵但颜色在例如高于50的所有值例如红色和以下蓝色。最重要的是我希望像他们与ggplot做此处添加一个漂亮的grayisch格:R矩阵积
我想知道什么是实现这一最简单的方法是什么?我不确定是否想给ggplot一个尝试,因为从目前为止看来,它看起来相当复杂。这样的任务是否还有其他简单的绘图功能?
我的基质由0至100之间的值的和具有100×100 尺寸我基本上要绘制这个矩阵但颜色在例如高于50的所有值例如红色和以下蓝色。最重要的是我希望像他们与ggplot做此处添加一个漂亮的grayisch格:R矩阵积
我想知道什么是实现这一最简单的方法是什么?我不确定是否想给ggplot一个尝试,因为从目前为止看来,它看起来相当复杂。这样的任务是否还有其他简单的绘图功能?
我不是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")
然后与ggplot联系:
qplot(x, y, fill=color, data=x1,geom='tile')
在基础图形,这只是:
image(x, col=c("red","blue")[1+(x>50)])
要添加网格使用:
grid(nx=100, ny=100, lty=1)
也是很好的做法!谢谢。不过,我更喜欢ggplot2软件包的风格:-)这真是太神奇了,不是吗? :) – user969113
你可以用levelplot做到足够简单,
x <- abs(runif(100*100,0, 100))
x <- matrix(x,nrow=100)
levelplot(x, cuts=1, col.regions=c("red", "blue"))
哇噢优秀。那现在看起来我想要什么!我刚开始研究ggplot2,就像我在过去半个小时里看到的那样,你可以制作出非常酷且看起来很棒的情节! :)谢谢你,伟大的工作! – user969113