2013-10-09 86 views
0

我需要繪製一個圖表,其中x軸是日期,y軸是相應的股票價格。我的數據框中的日期是數字。例如1980-01-01是3653.當我繪製數據時,我在x軸上獲得了數年。不過,我想指定哪些年份應該在那裏。當我通過axis(1, at=c("1980","1985","1990","1995","2000","2005","2010"))設置自己的x軸時,出現錯誤。如何創建具有特定日期標記的繪圖軸

我是否必須修改數據或有什麼訣竅才能使其工作?

這是數據的外觀:

> data2 
      date close change color 
     1 3653 4.668333 NA NA 
     2 3658 4.699753 3.142007e-02 green 
     3 3665 4.710161 1.040780e-02 green 
     4 3672 4.732772 2.261090e-02 green 
     5 3679 4.745975 1.320353e-02 green 
     6 3686 4.770261 2.428574e-02 green 
     7 3693 4.748491 -2.176980e-02 red 
... 

這是我到目前爲止所。你需要tserieszoo包。

data <- get.hist.quote("^GSPC", start = "1980-01-01", compression="w") 
data2 <- data.frame(date = as.Date(index(data)), close = data$Close) 
data2$close <- log(data2$close) 
plot(data2$date, data2$close, type="h", main="S&P 500", ylab="Log Close", xlab="Date", 
    axes=F) 
axis(2, at=c("5.0","5.5","6.0","6.5","7.0")) 
box(which = "plot") 

回答

0

使用as.Date以及相應的來源將日期轉換爲"Date"類。對於〔實施例,

> as.Date(3653, origin = "1969-12-31") 
[1] "1980-01-01" 

(通常在R上的由來是 「1970-01-01」,所以你可能要檢查,如果你是關閉的。)

不管怎麼說,持續:

data2$Date <- as.Date(data2$date, origin = "1969-12-31") 

plot(close ~ Date, data2, type = "o", pch = 20, xaxt = "n") 

lab <- seq(1980, 2010, 5) # years 
at <- as.Date(paste0(lab, "-01-01")) 
axis(1, at, lab) 
0

我覺得你需要把您希望您的蜱所以1:7和1:5與在= ...參數,並使用參數標籤= ...把​​年。

例子:

plot(1:7,c(1:5,5,5),axes=F,xlab="",ylab="") 
axis(1,at=1:7, labels=c("1980","1985","1990","1995","2000","2005","2010")) 
axis(2,at=1:5) 

我希望這將有助於。

相關問題