我在使用 ggplot2 绘制具有因子值的栅格时遇到问题。
library(ggplot2)
library(raster)
一、加载栅格数据
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
提取坐标和值
val <- getValues(r)
xy <- as.data.frame(xyFromCell(r,1:ncell(r)))
xy <- cbind(xy,val)
使用 geom_raster() 绘制网格。一切正常。
ggplot(xy, aes(x=x, y=y, fill=val)) + geom_raster() + coord_equal()
我没有连续的栅格,而是分类的。重新分类栅格:
r <- reclass(r, c(0,500,1, 500,2000,2))
val <- getValues(r)
xy <- as.data.frame(xyFromCell(r,1:ncell(r)))
xy <- cbind(xy,val)
绘制分类栅格。也可以,但传说是连续的
ggplot(na.omit(xy), aes(x=x, y=y, fill=val)) + geom_raster() + coord_equal()
如果我将值绘制为因子,则地图会出错
ggplot(na.omit(xy), aes(x=x, y=y, fill=factor(val))) + geom_raster() + coord_equal()