簡體   English   中英

如何在 R 中的 spplot 中操作圖

[英]How to manipulate plots in spplot in R

我正在嘗試使用 spplot 來可視化不同月份的圖。 我想更改這個數字,以便相同的月份在相同的列中以便於比較。 我想將 2016 年 5 月的 5 個面板推入,因此所有其余月份都符合要求。 我希望這是有道理的。 單擊此處查看圖

我現在缺少 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))

有沒有簡單的方法來操作面板?

請注意,您輸入了某些月份兩次,例如,July2017 出現了 3 次,March2017 出現了 2 次,June2017 2x 和 July2019 2x。

我下面的內容是從 May2016 到 July2019 的完整月份,這樣當你繪圖時,月份就會對齊。

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

然后我們使用上面的 SKIP 繪圖:

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
)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM