我可能会在这里遗漏一些简单的东西......无论如何我都无法找到跨越图例区分不同颜色的线条;继?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中的默认值!)
答案 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)
或使其成为一个参数,而不是硬编码。当我这样做时,我得到以下图表:
答案 1 :(得分:1)
您甚至不需要更改filled.contour硬编码。显然,函数border
中的参数rect
依赖于par("fg")
。只需设置par(fg = NA)
即可删除这些黑线。