R - How can I change date format when I plot an xt

2019-02-25 20:45发布

问题:

I am wondering how I can change date format.

The code I am working on is following:

library(quantmod)
getSymbols("AAPL")
price_AAPL <- AAPL[,6]
plot(price_AAPL, main = "The price of AAPL")

This results

I want to alter date format from

"%m %d %Y"

as shown in the graphic to

"%b-%d-%Y"

So I tried following after searching some tips:

plot(price_AAPL, main = "The price of AAPL", xaxt="n")
axis.Date(1,
          at=seq(head(index(price_AAPL),1), 
                 tail(index(price_AAPL),1), length.out=5), 
          format="%b-%d-%Y", las=2)

But this doesn't help, and doesn't even show any labeling on x-axis. I suppose that I might did something wrong with "axis.Date()".

Can anybody help me?

回答1:

With xts, you can use major.format directly.

plot(price_AAPL, main = "The price of AAPL",major.format="%b-%d-%Y")

However, you should know that zoo plots are generally more flexible.

plot.zoo(price_AAPL, main = "The price of AAPL", xaxt="n", xlab="")
axis.Date(1,at=pretty(index(price_AAPL)),
            labels=format(pretty(index(price_AAPL)),format="%b-%d-%Y"),
            las=2, cex.axis=0.7)