2012-02-24 92 views
16

當繪製僅圖例(一個raster對象的 - 一個彩條):圖例屬性時legend.only = T(光柵包)

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

如何可以控制圖例軸標籤尺寸,剔長度,和其他圖例屬性?我知道我可以在最後plot()呼叫之前致電par(...),但是有沒有更清晰的方法?

回答

34

您可以將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

+0

感謝,這正是我後,也沒有找到。 – Benjamin 2012-02-28 16:12:32

+0

謝謝,終於! R有時是如此反對直覺......爲什麼正常情節分析不起作用... – TMS 2013-08-26 09:21:09

+0

+1,我看到你是相當R的主人。 :) – zx81 2014-05-31 05:36:45

3

也有可能在當 '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")) 

enter image description here

+1

酷!有沒有辦法編輯圖例中文字的顏色? – 2016-02-26 15:29:07