簡體   English   中英

繪制3年的時間序列每小時數據

[英]Plot Time Series hourly data for 3 years

以下是我的數據。 我的數據稱為sales1156

> sales1156
date.and.time      hsales  
 06/01/11 09:00    14.00
 06/01/11 10:00    28.00
 06/01/11 11:00    28.00
 06/01/11 12:00    28.00
 06/01/11 13:00    28.00
 06/01/11 14:00    28.00

數據持續到2013年10月4日(04/10/2013)。 我已使用以下命令創建時間序列對象。

> hsales1156xts<-as.xts(sales1156,order.by=as.Date(sales1156$date.and.time,frequency=24))
> is.xts(hsales1156xts)
[1] TRUE

問題是我無法繪制適當的圖形。

> plot.xts(hsales1156xts)   # This command is throwing a warning as mentioned below    
Warning message:
In plot.xts(hsales1156xts) : only the univariate series will be plotted

Stackoverflow不允許我附加圖表。 有人請幫助我繪制此時間序列。 任何好的閱讀或建議都會很棒。 我無法從xts和Zoo文檔中獲得很多收益。 因此,需要一些詳細的語法和解釋。

日期列需要從as.xts(x=

測試例:

require(PerformanceAnalytics)

data(economics)
colnames(economics)
#[1] "date"     "pce"      "pop"      "psavert"  "uempmed"  "unemploy"

#Subset your timeseries
economics_sub=economics[,c("date","uempmed")]

#Ensure your date or datetime object is in the correct format
economics_sub$date=as.Date(economics_sub[,1],format="%Y-%m-%d")

#Exclude date column whie reading data in  "x ="
economics_xts<-as.xts(x=economics_sub[,"uempmed"],order.by=economics_sub[,"date"])
colnames(economics_xts)=colnames(economics_sub)[-1]

head(economics_xts)
#           uempmed
#1967-06-30     4.5
#1967-07-31     4.7
#1967-08-31     4.6
#1967-09-30     4.9
#1967-10-31     4.7
#1967-11-30     4.8


#Plot Series using PerformanceAnalytics function 'chart_Series'
chart_Series(economics_xts)

在此處輸入圖片說明

你的例子:

#Data input
sales1156=read.csv(text='date.time,hsales
 "06/01/11 09:00",14.00
 "06/01/11 10:00",28.00
 "06/01/11 11:00",28.00
 "06/01/11 12:00",28.00
 "06/01/11 13:00",28.00
 "06/01/11 14:00",28.00',header=TRUE)

#Check format of your datetime index
str(sales1156)
#'data.frame':  6 obs. of  2 variables:
# $ date.time: Factor w/ 6 levels " 06/01/11 09:00",..: 1 2 3 4 5 6
# $ hsales   : num  14 28 28 28 28 28

#The datetime index has been read as a factor and not as datetime object

#Convert datetime to appropriate format, in this case POSIXct format

sales1156$date.time=as.POSIXct(sales1156$date.time,format="%d/%m/%y %H:%M")

#Check if your formatting has worked as intended

str(sales1156)
#'data.frame':  6 obs. of  2 variables:
# $ date.time: POSIXct, format: "2011-01-06 09:00:00" "2011-01-06 10:00:00" ...
# $ hsales   : num  14 28 28 28 28 28

#Converion to xts,exclude date column whie reading data in  "x ="
hsales1156xts<-as.xts(x=sales1156[,"hsales"],order.by=sales1156[,"date.time"])
colnames(hsales1156xts)=colnames(sales1156)[-1]

head(hsales1156xts)
#                    hsales
#2011-01-06 09:00:00     14
#2011-01-06 10:00:00     28
#2011-01-06 11:00:00     28
#2011-01-06 12:00:00     28
#2011-01-06 13:00:00     28
#2011-01-06 14:00:00     28

#Plot Series using PerformanceAnalytics function 'chart_Series'
chart_Series(hsales1156xts)

在此處輸入圖片說明

暫無
暫無

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

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