版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/8015003
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)))