У меня была эта проблема раньше. Вы можете вручную изменить размер области графика, чтобы удалить пустые области, или вставить полигоны, чтобы закрыть ненужные области шейп-файла. Но наиболее надежным вариантом является использование spplot
, поскольку это автоматически изменит размер области построения для вас:
require(maptoolS)
require(raster)
data(wrld_simpl)
rs=raster()
rs[]=1
id_shp=wrld_simpl[which(wrld_simpl$ISO2=="ID"),]
rs=crop(rs,id_shp)
rs=disaggregate(rs,40)
rs=mask(rs,id_shp)
spplot(rs,ylim=c(-4,2),xlim=c(118,126),sp.layout=list('sp.lines', id_shp, lwd=2,first=F))