Propriétés de la légende lors de la légende.seulement = t (paquet raster))

en traçant seulement la légende (d'un raster objet - une barre de couleur):

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

Comment puis-je contrôler la taille de l'étiquette de l'axe de la légende, la longueur de la tique et d'autres propriétés de la légende? Je sais que je peux appeler par(...) avant le dernier plot() appel, mais est-il une manière plus propre?

17
r
demandé sur Josh O'Brien 2012-02-24 23:38:22

2 réponses

Vous pouvez passer axis.args et legend.args comme arguments à l'appel de fonction de légende seulement,image.plot dans le fields paquet.

par exemple, pour spécifier la position et les étiquettes des tiques, et pour réduire la taille des étiquettes des tiques, ce qui suit devrait faire l'affaire. Il acceptera aussi des arguments tels que legend.width et 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))

legend only - arguments

37
répondu jbaums 2014-11-18 12:23:44

il est également possible de travailler avec l'argument "smallplot" dans la légende "when".only=TRUE'. Petits travaux à partir du coin inférieur/gauche de la parcelle superficie petite parcelle=c(min % à partir de la gauche, max % à partir de la gauche, min % à partir du bas, max % à partir du bas).

# 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

4
répondu Matthew Bayly 2015-11-14 00:22:59