在R中绘制具有阈值的栅格

时间:2018-05-24 11:39:50

标签: r plot raster

我想绘制人口数据。数据是栅格数据。地图应该有少于1人居住的红色区域,以及有多个人的区域的另一种颜色。如果我只使用plot()函数,我无法实现它。我的数据来自:http://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-count-rev10 知道如何解决问题吗?

2 个答案:

答案 0 :(得分:1)

有许多类似的问题和很多答案,但也许这两个选项可能会有所帮助。

library(raster)

## Create random raster
spg <- data.frame( x = rep( 0:1, each=2 ),
                  y = rep( 0:1,  2),
                  l = c(0.8,1,1.1,100));
coordinates(spg) <- ~ x + y
gridded(spg) <- TRUE
rasterDF <- raster(spg)

## Assign values, based on your condition
values(rasterDF) <- as.numeric(values(rasterDF) >= 1)

## Create a Color Function
cpal <- colorRampPalette(c("red", "blue"))

## Plot with raster-package
plot(rasterDF, col=cpal(2))

## Plot with rasterVis package
library(rasterVis)
r2 <- ratify(rasterDF)
levelplot(r2, col.regions=cpal, att='ID')

答案 1 :(得分:0)

这个怎么样:

library(raster)

myColorRamp <- colorRampPalette(c("red", "blue"))

popRaster <- raster("path/to/my/raster")

values(popRaster) <- as.numeric(values(popRaster) >= 1)

plot(popRaster, col=myColorRamp(2))

您需要安装raster软件包,我认为该软件包具有sp软件包作为依赖项(可能还有rgdal)。