1

我在 R 中有以下代码来创建一个简单的热图。

data <- c(rnorm(80), rep(NA,20))
image(matrix(sample(data),nrow=50, ncol=2), las=1)

我想做以下两件事:-

  1. 我希望NA当前为白色的 s 有一条红色(或黑色)对角线。
  2. 我想增加热图中每个框周围的笔划宽度,以便清楚地描绘每个单元格。

我怎样才能实现(1)和(2)?

4

1 回答 1

3

这应该很接近:

# fix the data because we're going to use it twice:
d=sample(data)
# plot it with X and Y coords known (note 1 larger than dimension)
image(1:51,1:3,matrix(d,nrow=50, ncol=2),las=1)
# add diagonal shading
polygon(x=c(1,51,51,1),y=c(1,1,3,3),density=3,col="red")
# replot. The NA's show through:
image(1:51,1:3,matrix(d,nrow=50, ncol=2),las=1,add=TRUE)
# outline the cells.
abline(h=1:3)
abline(v=1:51)

如果您真的想要每个框中的单个红色斜杠:

x0=c(1:50,1:50)
x1=x0+1
y0=c(rep(1,50),rep(2,50))
y1=y0+1
image(1:51,1:3,matrix(d,nrow=50, ncol=2),las=1)
segments(x0,y0,x1,y1,col="red",lwd=2)
image(1:51,1:3,matrix(d,nrow=50, ncol=2),las=1,add=TRUE)
abline(v=1:51);abline(h=1:3)
于 2013-04-05T16:38:22.570 回答