legend.only = T(光栅包)时的图例属性

时间:2012-02-24 19:38:23

标签: r

仅绘制图例(raster对象 - 颜色条)时:

require(raster)
r = raster()
r[] = 1
plot(r, legend=F)
plot(r, zlim=c(-10,10), legend.only=T)

如何控制图例轴标签大小,刻度线长度和其他图例属性?我知道我可以在最后一次par(...)电话之前致电plot(),但有更清洁的方式吗?

2 个答案:

答案 0 :(得分:43)

您可以将axis.argslegend.args作为参数传递给fields包中仅限图例的函数调用as for image.plot

例如,要指定刻度位置和标签,并减少刻度标签大小,以下应该可以解决问题。它还会接受legend.widthlegend.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))

legend only - arguments

答案 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"))

enter image description here