rect函数在某些参数下不显示顶部边框

时间:2012-10-12 16:23:50

标签: image r graphics

当我尝试使用下面的函数时,我注意到我的顶行缺少图中的水平线。我已将此跟踪到指定我的矩形尺寸的线,特别是它应该是多高和多低。我可以设置一个参数,以便始终显示顶行吗?下面的代码没有顶行..

Plot.Lines <- function(colCount, rowCount, cex){
  colCount <- colCount # number per row
  rowCount <- rowCount

  plot( c(1,colCount), c(0,rowCount), type="n", ylab="", xlab="",
       axes=FALSE, ylim=c(rowCount,0))
  title("My Lines")

  for (j in 0:(rowCount-1))
  {
    base <- j*colCount
    remaining <- length(colors()) - base
    RowSize <- ifelse(remaining < colCount, remaining, colCount)
    for(i in 1:RowSize){
      rect(i-0.5,j-0.5,i+0.5, j+0.5, border = "black", col = colors()[base + (1:RowSize)]) 
    }
    for(i in 1:RowSize){
      text(x = i, y =j, labels = paste(base + i), cex =cex, col = "black")
    }
  }
}

Plot.Lines(25, 6, cex = 0.5)

但是,如果我将该行更改为:

rect(i-0.5,j-0.2,i+0.5, j+0.2, border = "black", col = colors()[base + (1:RowSize)]) 

然后它起作用,尽管行之间有空格。有没有一种方法可以自动设置colCount和rowCount?

1 个答案:

答案 0 :(得分:2)

顶边被切断,因为它超出了绘图区域。您可以使用par(xpd=TRUE)来允许在内部区域之外进行绘图。在致电plot之前说出来。