如何在R中的spplot中操作图

问题描述 投票:1回答:1

我正在尝试使用spplot可视化不同月份的图。我想更改此数字,以使同一月份在同一列中可以轻松比较。我想推入2016年5月的5个面板,因此其余所有月份都符合要求。我希望这是有道理的。click here for figure

我现在缺少2017年12月的数据,这就是为什么它被涂黑的原因。

这是我的代码:

stack_months <- stack(May2016, June2016, July2016, Aug2016, Sep2016, Oct2016, Nov2016, Dec2016, January2017, Febuary2017, March2017, April2017, May2017, June2017, July2017, July2017, Aug2017, Sep2017, Oct2017, Nov2017, Dec2017, January2018, Febuary2018, March2017, April2018, May2018, June2017, July2017, July2018, Aug2018, Sep2018, Oct2018, Nov2018, Dec2018, January2019, Febuary2019, March2019, April2019, May2019, June2019, July2019, July2019)
spplot(stack_months, col.regions=viridis(20), names.attr = c("May2016", "June2016", "July2016", "Aug2016", "Sep2016", "Oct2016", "Nov2016", "Dec2016", 
                                                             "Jan2017", "Feb2017", "March2017", "April2017", "May2017", "June2017", "July2017", "July2017", "Aug2017", "Sep2017", "Oct2017", "Nov2017", "Dec2017",
                                                             "Jan2018", "Feb2018", "March2017", "April2018", "May2018", "June2017", "July2017", "July2018", "Aug2018", "Sep2018", "Oct2018", "Nov2018", "Dec2018", 
                                                             "Jan2019", "Feb2019", "March2019", "April2019", "May2019", "June2019", "July2019", "July2019"), layout = c(12,4))

有没有一种简单的方法来操纵面板?

r plot lattice sp
1个回答
1
投票

请注意,您键入了某些月份的两次,例如,2017年7月出现了3次,2017年3月出现了2次,2017年6月为2x,2019年7月为2x。

我下面是从2016年5月到2019年7月的完整月份,以便在进行绘制时,月份会对齐。

library(raster)
library(sp)
library(viridis)
library(lattice)

months=c("May2016", "June2016", "July2016", "Aug2016", "Sep2016", "Oct2016", 
"Nov2016", "Dec2016", "Jan2017", "Feb2017", "March2017", "April2017", 
"May2017", "June2017", "July2017","Aug2017", "Sep2017", 
"Oct2017", "Nov2017", "Dec2017","Jan2018", "Feb2018", "March2018", 
"April2018", "May2018", "Jun2018", "July2018", "Aug2018", 
"Sep2018", "Oct2018", "Nov2018", "Dec2018","Jan2019", "Feb2019", 
"March2019", "April2019", "May2019", "June2019", "July2019")

我没有您的数据,所以我模拟了图像:

r <- raster(system.file("external/test.grd", package="raster"))
stack_months = do.call(stack,lapply(months,function(i)runif(1)*r))

您将布局定义为12,4,因此您将有48个条目,按行填充。在您的情况下,将不会绘制前4个,也不会绘制后5个:

SKIP = rep(FALSE,12*4)
SKIP[1:4] = TRUE
SKIP[44:48] = TRUE

然后我们使用上面的跳过图进行绘制:

spplot(stack_months, col.regions=viridis(20),
layout = c(12,4),
strip = strip.custom(par.strip.text = list(cex = 0.65)),
names.attr = months,
skip=SKIP
)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.