条件化 RasterStack 图的顶部和侧面条带
Strips at top and side for conditioned RasterStack plot
对于以下RasterStack
,各个图层根据两个因素(大写字母和小写字母)进行分组。
library(raster)
s <- stack(replicate(6, raster(matrix(runif(100), 10))))
names(s) <- do.call(paste, c(expand.grid(LETTERS[1:2], letters[1:3]), sep='_'))
spplot(s)
我想避免重复级别的标签,最好是在顶部有一条带有标签 A
和 B
的条带,在左侧或右侧有一条条带边上有标签 a
、b
和 c
。类似于以下内容,但对于 RasterStack
.
library(latticeExtra)
useOuterStrips(
xyplot(y~x|grp1+grp2,
data.frame(x=runif(600), y=runif(600),
grp1=rep(LETTERS[1:2], each=100),
grp2=rep(letters[1:3], 200)),
strip=strip.custom(style=1), as.table=TRUE))
我想要一个基于 lattice
的解决方案(包括 rasterVis::levelplot
),因为这样我尝试创建的情节将与其他工作很好地融合在一起。也就是说,我愿意接受 ggplot2
解决方案。
我想我想多了...
library(tidyr)
cbind(as.data.frame(s), coordinates(s)) %>%
gather(group, val, -x, -y) %>%
separate(group, c('grp1', 'grp2'), '_') %>%
levelplot(x=val~x+y|grp1+grp2, aspect='iso',
scales=list(alternating=FALSE, tck=1:0)) %>%
useOuterStrips
对于以下RasterStack
,各个图层根据两个因素(大写字母和小写字母)进行分组。
library(raster)
s <- stack(replicate(6, raster(matrix(runif(100), 10))))
names(s) <- do.call(paste, c(expand.grid(LETTERS[1:2], letters[1:3]), sep='_'))
spplot(s)
我想避免重复级别的标签,最好是在顶部有一条带有标签 A
和 B
的条带,在左侧或右侧有一条条带边上有标签 a
、b
和 c
。类似于以下内容,但对于 RasterStack
.
library(latticeExtra)
useOuterStrips(
xyplot(y~x|grp1+grp2,
data.frame(x=runif(600), y=runif(600),
grp1=rep(LETTERS[1:2], each=100),
grp2=rep(letters[1:3], 200)),
strip=strip.custom(style=1), as.table=TRUE))
我想要一个基于 lattice
的解决方案(包括 rasterVis::levelplot
),因为这样我尝试创建的情节将与其他工作很好地融合在一起。也就是说,我愿意接受 ggplot2
解决方案。
我想我想多了...
library(tidyr)
cbind(as.data.frame(s), coordinates(s)) %>%
gather(group, val, -x, -y) %>%
separate(group, c('grp1', 'grp2'), '_') %>%
levelplot(x=val~x+y|grp1+grp2, aspect='iso',
scales=list(alternating=FALSE, tck=1:0)) %>%
useOuterStrips