Я использую пакет rasterVis
и функцию levelplot
для построения семи растров на одном графике.
Вот макет, который я собираюсь использовать: правильный макет
Я достиг этого, используя следующий код:
png("E:/all_files/production/plots/for_final/hist_vis_split2.png",
width=6, height=9, units="in", res=72)
layout(matrix(c(1,1,2,3,4,5,6,7), 4, 2, byrow = T))
print(maurer+layer(sp.lines(sr)), split=c(2,1,3,4), more=TRUE)
print(nar.ccsm+layer(sp.lines(sr)), split=c(1,2,3,4), more=TRUE)
print(nar.gfdl+layer(sp.lines(sr)), split=c(3,2,3,4), more=TRUE)
print(bcsd.ccsm+layer(sp.lines(sr)), split=c(1,3,3,4), more=TRUE)
print(bcsd.gfdl+layer(sp.lines(sr)), split=c(3,3,3,4), more=TRUE)
print(bcca.ccsm+layer(sp.lines(sr)), split=c(1,4,3,4), more=TRUE)
print(bcca.gfdl+layer(sp.lines(sr)), split=c(3,4,3,4))
dev.off()
Помимо того, что он неуклюжий и неуправляемый, в нем по-прежнему отсутствует основной заголовок и один общий colorkey
для всего изображения.
Я бы предпочел использовать команду levelplot
. Ниже приведен код, который я использовал для построения всех семи растров в одном levelplot
с одним colorkey
. К сожалению, это не имеет правильного макета:
crop.stack <- stack(maurer, bcsd.ccsm.crop, bcsd.gfdl.crop, bcca.ccsm.crop,
bcca.gfdl.crop, nar.ccsm.crop, nar.gfdl.crop)
plot.names <- c("Maurer", "BCSD CCSM", "BCSD GFDL", "BCCA CCSM",
"BCCA GFDL", "NARCCAP CCSM", "NARCCAP GFDL")
png("E:/all_files/production/plots/for_final/hist_vis.png",
width=6, height=9, units="in", res=72)
hist <- levelplot(crop.stack, main="Historical Average Production Days",
col.regions=cols,
names.attr=plot.names,
scales=list(draw=F),
layout=c(2,4))
hist + layer(sp.lines(sr))
dev.off()
Решение здесь близко, но не касается нечетного количества графиков. Как я могу добиться желаемого макета с помощью команды levelplot
?
gridExtra::grid.arrange
: cran.r-project.org /web/packages/gridExtra/виньетки/ - person jbaums   schedule 03.09.2016