我想用ggplot绘制一个矩阵。
以下是一些示例代码:
以下是一些示例代码:
# create a dummy matrix
d2 <- matrix(data=NA,nrow=21,ncol=21,dimnames=list(-10:10,-10:10))
sig <- 3; mx <- 0; my <- 0;
for (jr in as.numeric(dimnames(d2)[[1]])){
for (jc in as.numeric(dimnames(d2)[[2]])){
d2[jr+11,jc+11] <- 1/sig/(2*pi)^.5*exp(-((jr-mx)^2+(jc-my)^2)/2/sig^2)
}
}
# convert it to dataframe
d2.df <- data.frame(x=rep(as.numeric(dimnames(d2)[[1]]),each=ncol(d2)),y=rep(as.numeric(dimnames(d2)[[2]]),times=nrow(d2)),z=as.vector(d2))
# plot with geom_tiles
library(ggplot2)
ggplot(data=d2.df,aes(x=x,y=y,fill=z))+
geom_tile()
这可以做到不需要转换为数据框吗?
help("image")
)实现。 - Roland