Hélio, bom dia!

Da forma que você está procedendo, dá pra utilizar o argumento 'xpd' em par(). A ideia é 'liberar' o uso do espaço entre figuras.

Complementarmente, tem a alternativa de usar a biblioteca sp() pra colocar o norte nos mapas e  'locator()' pra posicionar diretamente!

<code r>
nURL1 <- 'http://pixabay.com/static/uploads/photo/2013/07/12/13/43/arrows-147170_150.png'
download.file(nURL1, 'rosaVentos.png', mode='wb')

require(geoR)
plot(parana$bor, asp=1, type='l')

img <- png::readPNG('rosaVentos.png')
# locator(1) ### use para ajustar as coordenadas
rasterImage(img, xleft=800, xright=900, ytop=450, ybottom=350)

par(mfrow=c(1,2), xpd=T)
for (i in 1:2) plot(parana$bor, asp=1, type='l', col=i)
# locator(1) ### use para ajustar as coordenadas
rasterImage(img, xleft=-300, xright=-100, ytop=600, ybottom=400)

### Norte e barra de escala da biblioteca sp()
### Posicionamento por locator()
SpatialPolygonsRescale(layout.north.arrow(),offset=locator(1),scale=200,fill=c("black"),plot.grid=F)
SpatialPolygonsRescale(layout.scale.bar(),offset=locator(1),scale=100,fill=c("white","black"),plot.grid=F)
text(locator(1),"0")
text(locator(1),"100 unid.")
### </code>

Éder Comunello <comunello.eder@gmail.com>
Dourados, MS - [22 16.5'S, 54 49'W]