我无法真正设置绘制的shapefile的边界。我首先绘制shapefile以获得以度为单位的漂亮的x和y-标签,然后绘制数据。最后,我再次在数据上绘制shapefile。 ylim
是可更改的,但xlim
似乎完全取决于ylim
更改,因为我无法改变xlim
本身。只有当我更改ylim
而不更改xlim
时,它才会有所不同,就像它是宽高比问题一样。
我想将x轴限制在8.5到11.5度之间。
指向shapefile和栅格的链接:https://www.dropbox.com/sh/l42mty01mwtm8qc/AADqjNbGkmNwx3o9aFceGrkya?dl=0
我的代码:
library(rgeos)
library(rgdal)
library(raster)
Sys.setlocale(category = "LC_ALL", locale = "C") # In the case German Umlauts are a problem while reading the shapefile
map <- readOGR("C:\\Path\\NATRAUM_MR_utm32.shp")
# Exclude unnecessary regions
map <- subset(map, NATREGNR != 3)
map <- subset(map, NATREGNR != 4)
map <- subset(map, NATREGNR != 9)
map_wgs84 <- spTransform(map, crs(raster.percent.change.rcp85.1971_2005.2071_2100))
# Pixelplot
par(mar = c(3, 3, 2, 1)) # For saving pictures through a device like pdf
m <- plot(map_wgs84, axes=TRUE, xlim = c(8.5, 11.5), ylim=c(51.35, 53.15), cex = .5,
bty = "n")
# Colortable for legend
colTab <- c("#0033CC", "#3366FF", "#6699FF","#99FFFF", "#FFCC99","#FF9933", "#FF4D00","#660000")
N <- length(colTab)
breaks <- seq(-2, 2, length.out= N+1 )
plot(raster.percent.change.rcp85.1971_2005.2071_2100, col = colTab, breaks = breaks,
axis.args = list(cex.axis = 1, at = breaks, labels = breaks, mgp = c(1, 0, 0), tck = 0.1),
legend.args = list(text='Change [%]', side=4, font=2, line=1.75, cex=0.7),
add = TRUE
)
plot(map_wgs84, add = TRUE) # Plotting shapefile over data
答案 0 :(得分:0)
您需要调整绘图窗口的大小。您可以使用par(fin=c(x,y))
或png()
设置有效的比率,并在代码中修复该比率。
这是因为对于地图,强制执行正确的方面(垂直和水平范围的比率)。对于平面数据,方面是1.对于角度数据(经度/纬度),它随纬度而变化。
有些数据(请不要使用我们需要下载的文件)。
library(raster)
p <- shapefile(system.file("external/lux.shp", package="raster"))
比较
par(fin=c(6,6))
plot(p, axes=T, xlim=c(6,6.2), ylim=c(49.6, 49.8))
par(fin=c(4, 6))
plot(p, axes=T, xlim=c(6,6.2), ylim=c(49.6, 49.8))