上次搞定了R語言對一列的值做emd然后輸出所有imf的組合圖,下面嘗試處理多列數(shù)值。
繪制所有省份最高值的最后一個IMF
# 讀取數(shù)據(jù)
load <- data.frame(read.csv("最高.csv"))
# 取對數(shù) length(load) load[,2:length(load)] <- log(load[,2:length(load)]) 最后的表的標(biāo)題
title <- "全省區(qū)最高值最后一個IMF"
# emd循環(huán) 創(chuàng)建一個用于存儲圖表的list
plotlist <- list()
for (i in 2:length(load)) {
# emd計(jì)算
emd <- emd(xt = load[, i], boundary = "wave", stoprule = "type5")
# 選擇繪制IMF并存儲?。?!在此處選擇繪制哪一條曲線
emdframe <- data.frame(Time = load[, "日期"], EMD = emd$imf[, emd$nimf])
plotlist[[i - 1]] <- ggplot(data = emdframe, aes(x = Time, y = EMD)) + geom_hline(yintercept = 0, colour = "red") + geom_line(size = 0.5) + labs(x = paste("IMF", emd$nimf), y = colnames(load[i]))
}
# 繪制組合圖
totalplot <- cowplot::plot_grid(plotlist = plotlist, ncol = floor(sqrt(length(load) - 1)))
# now add the title
titleplot <- ggdraw() + draw_label(title, fontface = "bold")
finalplot <- plot_grid(titleplot, totalplot, ncol = 1, rel_heights = c(0.05, 1)) # rel_heights values control title margins
finalplot
全省區(qū)最高值原值

所有省份最高值的最后一個IMF

所有省份最高值的余項(xiàng)
