我正在使用
绘制欧洲地图 library(rworldmap)
newmap <- getMap(resolution = "high")
plot(newmap, xlim = c(-10, 30), ylim = c(25, 65), asp = 1)
是否有可能不绘制国家之间的界限,而只绘制海洋与陆地之间的界限?
我可以用
实现这一目标map('world', xlim = c(-10, 30), ylim = c(25, 65), asp = 1, interior=FALSE)
但我不太喜欢这个决议。
答案 0 :(得分:0)
你可以获得非常精细的分辨率和只是从自然地球着陆边界(你也可以获得较低分辨率的分辨率)。您支付的价格是处理/绘图的时间(R对复杂/多边形来说不是很快)。
以下内容:
library(sp)
library(rgdal)
library(rgeos)
library(raster)
URL <- "http://naciscdn.org/naturalearth/10m/physical/ne_10m_land.zip"
fil <- basename(URL)
if (!file.exists(fil)) download.file(URL, fil)
shp <- grep("shp$", unzip(fil), value=TRUE)
world <- readOGR(shp, ogrListLayers(shp)[1], stringsAsFactors=FALSE)
world_clip <- gIntersection(as(extent(-10, 30, 25, 65), "SpatialPolygons"),
world, byid=TRUE)
# tweak 0.05 up/down as needed
world_simpl <- gSimplify(world, 0.05)
world_simpl_clip <- gIntersection(as(extent(-10, 30, 25, 65), "SpatialPolygons"),
world_simpl, byid=TRUE)
par(mfrow=c(2,2), mar=c(0,0,0,0))
plot(world, xlim = c(-10, 30), ylim = c(25, 65), asp = 1)
plot(world_clip, asp = 1)
plot(world_simpl, xlim = c(-10, 30), ylim = c(25, 65), asp = 1)
plot(world_simpl_clip, asp = 1)
par(mfrow=c(1,1))
更细的线条不会在较小的显示/打印尺寸上移除(IMO)丑陋的海岸线,但您可以调整简化组件以实现您自己的个人审美和放大。时间平衡。