Вы были почти там, на самом деле. Чтобы контролировать пределы окна графика через xlim / ylim без лишних пробелов, которые R имеет тенденцию добавлять, вы должны указать опцию x/yaxt = 'i'
. Вы устанавливаете его для оси x, но не для оси y.
Когда я устанавливаю его для оси y, выводимые значения соответствуют ожидаемым, и график полностью белый (извините, что не выложил его изображение ;-))
png('mundi.png', width = 1000, height = 500)
par(mar=c(0,0,0,0), bg='green')
plot(NA, xlim = c(-180,180), ylim = c(-90,90),
xaxs='i', yaxs='i', # set both axes to 'i' option
bty='n',xaxt='n',yaxt='n',asp=1)
par('usr')
# [1] -180 180 -90 90
rect(-180,-90,180,90,col='white')
dev.off()