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