用ggplot2為時間序列資料繪圖
阿新 • • 發佈:2019-01-10
在R中用ggplot()函式為時間序列型別的資料繪圖時,發現ggplot()無法識別ts型別的資料,這時候就可以先將時間序列型別拆成資料框型別然後在繪圖。具體方法如下:
1. 示例資料集
library(TSA)
library(ggplot2)
data("larain")
class(larain)
plot(larain)
TSA包中自帶的larain資料集記錄了從1878年開始的洛杉磯年降水量。
2. 獲取ts型別資料的開始、結束時間以及資料內容
# 獲得ts資料型別的開始、結束時間以及資料內容
larainStartdayVector = start(larain) #獲得開始日期
larainEnddayVector = end(larain) #獲得結束日期
larainValue = larain[1:length(larain)] #獲得資料
3. 繪圖
larainStartdate = (as.Date(paste(larainStartdayVector[1],'-01-01',sep = '')) + larainStartdayVector[2]) - 1
larainEnddate = (as.Date(paste(larainEnddayVector[1],'-01-01',sep = '')) + larainEnddayVector[2 ]) - 1
seqMonths = seq(from=larainStartdate, to=larainEnddate, by="year")
larainData = data.frame(date=seqMonths,value=larainValue) #ts資料轉換成了data.Frame
ggplot(larainData,aes(x=date,y=value)) + geom_line()