仅绘制图例(raster对象 - 颜色条)时:
require(raster)
r = raster()
r[] = 1
plot(r, legend=F)
plot(r, zlim=c(-10,10), legend.only=T)
Run Code Online (Sandbox Code Playgroud)
如何控制图例轴标签大小,刻度线长度和其他图例属性?我知道我可以par(...)在最后一次通话之前plot()拨打电话,但有更清洁的方式吗?
jba*_*ums 43
您可以通过axis.args与legend.args作为参数传递给传说只有函数调用,用于image.plot在fields包中.
例如,要指定刻度位置和标签,并减少刻度标签大小,以下应该可以解决问题.它也会接受诸如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))
Run Code Online (Sandbox Code Playgroud)

当'legend.only = TRUE'时,也可以使用'smallplot'参数.从小区的左下角开始的小作品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"))
Run Code Online (Sandbox Code Playgroud)