仅绘制图例(raster
对象 - 颜色条)时:
require(raster)
r = raster()
r[] = 1
plot(r, legend=F)
plot(r, zlim=c(-10,10), legend.only=T)
如何控制图例轴标签大小,刻度线长度和其他图例属性?我知道我可以在最后一次par(...)
电话之前致电plot()
,但有更清洁的方式吗?
答案 0 :(得分:43)
您可以将axis.args
和legend.args
作为参数传递给fields
包中仅限图例的函数调用as for image.plot
。
例如,要指定刻度位置和标签,并减少刻度标签大小,以下应该可以解决问题。它还会接受legend.width
和legend.shrink
等参数。
require(raster)
data(volcano)
r <- raster(volcano)
plot(r, col=topo.colors(100), legend=FALSE, axes=FALSE)
r.range <- c(minValue(r), maxValue(r))
plot(r, legend.only=TRUE, col=topo.colors(100),
legend.width=1, legend.shrink=0.75,
axis.args=list(at=seq(r.range[1], r.range[2], 25),
labels=seq(r.range[1], r.range[2], 25),
cex.axis=0.6),
legend.args=list(text='Elevation (m)', side=4, font=2, line=2.5, cex=0.8))
答案 1 :(得分:5)
也可以使用&#39; smallplot&#39;在&f; legend.only = TRUE&#39;时的争论。从小区的左下角开始的小作品smallplot = c(左起最小%,左起最大%,底部最小%,底部最大%)。
# load data & plot
require(raster); data(volcano); r <- raster(volcano)
plot(r, col=topo.colors(100), legend=FALSE, axes=FALSE)
r.range <- c(minValue(r), maxValue(r))
plot(r, legend.only=TRUE, col=topo.colors(100), legend.width=1, legend.shrink=0.75,
smallplot=c(0,.09, .3,.75)); par(mar = par("mar"))
plot(r, legend.only=TRUE, col=topo.colors(100), legend.width=1, legend.shrink=0.75,
smallplot=c(0.3,0.5, 0.2,0.7)); par(mar = par("mar"))
plot(r, legend.only=TRUE, col=topo.colors(100), legend.width=1, legend.shrink=0.75,
smallplot=c(0.85,0.9, 0.7,0.9)); par(mar = par("mar"))
plot(r, legend.only=TRUE, col=topo.colors(100), legend.width=1, legend.shrink=0.75,
smallplot=c(0.7,0.90, 0.05,0.2)); par(mar = par("mar"))