我有一张图片,我想只绘制100 * 100的正方形,左下角为0,0。 当我使用下面的命令。为什么我的裁剪图像周围会出现空白区域? 我怎样才能避免它,并确保我得到精确的100 * 100图像?
如果你想重复我的例子,你可以使用第1行的任何图像(假设图像大于100 * 100像素)
r <- raster("C:/Users/nnnn/Desktop/geo.jpg")
vector= getValues(r)
plot(r)
r
par(mar=c(0,0,0,0))
par(oma=c(0,0,0,0))
par(mai=c(0,0,0,0))
par(omi=c(0,0,0,0))
plot(r,xlim=c(0,100),ylim=c(0,100),legend=FALSE,axes=FALSE)
答案 0 :(得分:1)
这是我最好的镜头:
library(raster)
## An example raster
logo <- raster(system.file("external/rlogo.grd", package="raster"))
## Clip out the lower-left 50*100 pixel rectangle as a new raster 'r'
cropWithRowCol <- function(r, rows, cols) {
cc <- cellFromRowColCombine(r, rownr=rows, colnr=cols)
crop(r, rasterFromCells(r, cc, values=FALSE))
}
r <- cropWithRowCol(logo, nrow(logo) - 49:0, 1:100)
## Extract multipliers used to appropriately size the selected device
w <- ncol(r)/max(dim(r))
h <- nrow(r)/max(dim(r))
## Set up appropriately sized device with no borders and required coordinate system
## png("eg.png", width=480*w, height=480*h)
dev.new(width=5*w, height=5*h)
plot.new()
par(mar=c(0,0,0,0), oma=c(0,0,0,0))
plot.window(xlim=extent(r)[1:2], ylim=extent(r)[3:4], xaxs="i",yaxs="i")
## Finally, plot the (sub-)raster to it
plot(r, axes=FALSE, legend=FALSE, add=TRUE)
## dev.off()
(请记住,在交互式可调整大小的设备中,更改设备的大小会使绘制的地图的宽高比变得混乱。)
答案 1 :(得分:0)
通常为地图维护宽高比。绘制到文件时可以使用宽度/高度。您可以手动调整标准设备的大小,但您也可以这样做:
library(raster)
r <- raster(nrow=240, ncol=320)
values(r) <- 1:ncell(r)
dev.new(height=0.91*nrow(r)/50, width=1.09*ncol(r)/50)
plot(r, legend=FALSE)
答案 2 :(得分:0)
更改宽高比:
plot(r, asp=1)