栅格包:每个像元周围的线条
raster package: Lines around each cell
我想在栅格的每个像元周围画上黑线。下面是示例数据。
我的意思是,而不是 frame/borderless 个单元格
我想要这个(带边框的单元格)
我怎样才能做到这一点?
library(raster)
require(graphics)
require(grDevices)
library(colorRamps)
data<-matrix(c(1,0.4,0.5,0.8,-0.9,0.3,-0.89,-0.62,-0.33),ncol=3)
r <- raster(nrows=dim(data)[1],ncols=dim(data)[2],
xmn=-1,xmx=1,ymn=-1,ymx=1)
r[]<-data
setValues(r,factor(data))
plot(r,col=c(topo.colors(200)),axes=FALSE,box=FALSE)
您可以使用 rasterToPolygons
:
plot(r, col=c(topo.colors(200)), axes=FALSE, box=FALSE)
plot(rasterToPolygons(r), add=TRUE, border='black', lwd=1)
如果您愿意使用 ggplot2,我提供了一个使用 geom_tile()
的可能解决方案。可以使用 geom_tile
的 colour
参数勾勒出像素轮廓。缺点是您的数据可能需要重新格式化才能与 ggplot2 一起使用。
library(ggplot2)
library(reshape2)
dat = melt(volcano[26:40, 26:40])
p = ggplot(dat, aes(x=Var1, y=Var2, fill=value)) +
geom_tile(colour="grey20") +
scale_fill_gradientn(colours = terrain.colors(10))
ggsave("tile_plot.png", plot=p, height=6, width=7, dpi=150)
我想在栅格的每个像元周围画上黑线。下面是示例数据。 我的意思是,而不是 frame/borderless 个单元格
我想要这个(带边框的单元格)
library(raster)
require(graphics)
require(grDevices)
library(colorRamps)
data<-matrix(c(1,0.4,0.5,0.8,-0.9,0.3,-0.89,-0.62,-0.33),ncol=3)
r <- raster(nrows=dim(data)[1],ncols=dim(data)[2],
xmn=-1,xmx=1,ymn=-1,ymx=1)
r[]<-data
setValues(r,factor(data))
plot(r,col=c(topo.colors(200)),axes=FALSE,box=FALSE)
您可以使用 rasterToPolygons
:
plot(r, col=c(topo.colors(200)), axes=FALSE, box=FALSE)
plot(rasterToPolygons(r), add=TRUE, border='black', lwd=1)
如果您愿意使用 ggplot2,我提供了一个使用 geom_tile()
的可能解决方案。可以使用 geom_tile
的 colour
参数勾勒出像素轮廓。缺点是您的数据可能需要重新格式化才能与 ggplot2 一起使用。
library(ggplot2)
library(reshape2)
dat = melt(volcano[26:40, 26:40])
p = ggplot(dat, aes(x=Var1, y=Var2, fill=value)) +
geom_tile(colour="grey20") +
scale_fill_gradientn(colours = terrain.colors(10))
ggsave("tile_plot.png", plot=p, height=6, width=7, dpi=150)