用R绘制网格

1. 用grid包,下面展示其用法。

library(grid)

dat <- data.frame(x = rep(seq(0, 0.8, 1/5), 5),
                  y = rep(seq(0, 0.8, 1/5), each = 5),
                  val = rnorm(25, 20, 5))

# making relative values (%) to be used for color-gradiation in plot
dat$rel <- 100 * dat$val / max(dat$val)

# creating grey-tones relative to val -
# maximum greytone is relative to the val-maximum
# i use the reciprocal to get darker tones for higher values:
dat$col<-paste("grey", 100 - round(dat$rel, 0), sep = "")

# opening the graphic device and
# setting up a viewport with borders:
grid.newpage()
vp1 <- viewport(x = 0.1, y = 0.1, w = 0.8, h = 0.8, 
                just = c("left", "bottom"), name = "vp1")

# plotting rectangles using x/y positions
grid.rect(x=dat$x,y=dat$y,height=1/5,width=1/5,hjust=0,vjust=0,vp=vp1,
          gp=gpar(col=1, fill=as.character(dat$col)))



2. 输出为:

posted on 2012-09-24 23:07  YangJin  阅读(394)  评论(0编辑  收藏  举报