【发布时间】:2019-11-23 23:10:34
【问题描述】:
我不想用 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()
这可以在不将其转换为数据框的情况下完成吗?
【问题讨论】:
-
不,不是 ggplot2。是的,带有基本图形(例如,请参阅
help("image"))。 -
我投票决定将此问题作为题外话结束,因为在函数 ggplot 的帮助下清楚地说明了对象需要是一个 data.frame,因此这个问题不应该是。