删除filled.contour图例中的行

时间:2011-11-09 16:43:04

标签: r

我可能会在这里遗漏一些简单的东西......无论如何我都无法找到跨越图例区分不同颜色的线条;继?filled.contour中的火山地形示例之后,我得到了这个:

x <- 10*1:nrow(volcano)
y <- 10*1:ncol(volcano)

filled.contour(x, y, volcano, color = terrain.colors,
   plot.title = title(main = "The Topography of Maunga Whau",
    xlab = "Meters North", ylab = "Meters West"),
    plot.axes = { axis(1, seq(100, 800, by = 100))
              axis(2, seq(100, 600, by = 100)) },
    key.title = title(main="Height\n(meters)"),
    key.axes = axis(2,
          labels=FALSE,
          at=FALSE,
          lty=NULL,
          tick=FALSE,
          col="white",
          col.ticks=NULL)
)
mtext(paste("filled.contour(.) from", R.version.string),side = 1, line = 4, adj = 1, cex = .66)

我已经设法从轴上删除了所有标签和刻度线,但线条仍然存在(顺便说一句,我想要实现的效果是(我相信)Matlab中的默认值!)

2 个答案:

答案 0 :(得分:9)

如果你检查filled.contour的代码,你会看到这一行:

rect(0, levels[-length(levels)], 1, levels[-1L], col = col)

绘制颜色键矩形。它是矢量化的,因此它绘制了每个单独的颜色框。函数rect接受参数border,如果设置为NA,则会省略矩形的内部边框。因此,创建自己的函数版本并将此行更改为:

rect(0, levels[-length(levels)], 1, levels[-1L], col = col, border = NA)

或使其成为一个参数,而不是硬编码。当我这样做时,我得到以下图表:

enter image description here

答案 1 :(得分:1)

您甚至不需要更改filled.contour硬编码。显然,函数border中的参数rect依赖于par("fg")。只需设置par(fg = NA)即可删除这些黑线。