Set x-axis labels to dates when plotting time series

前端 未结 1 1277
庸人自扰
庸人自扰 2021-01-12 06:14
x=read.table(text=\"    Qtr1 Qtr2 Qtr3 Qtr4  
2010  1.8  8.0  6.0  3.0  
2011  2.0 11.0  7.0  3.5  
2012  2.5 14.0  8.0  4.2  
2013  3.0 15.2  9.5  5.0\",
    sep=\"         


        
相关标签:
1条回答
  • 2021-01-12 06:33

    When you call axis(1, at=time) you're telling R to plot the x axis with labels at points given by time. However, time is a vector of characters, not numbers.

    In general, you call axis(1, at=..., labels=...) indicating the actual labels and where to place them along the axis. In your case, your call to plot.ts implicitly sets the x-axis limits to 2010 and 2013.75, so your at parameter should reflect those limits.

    So you want to call axis saying that the labels are time and the positions are 2010, 2010.25, 2010.50 ..., that is, seq(from=2010, to=2013.25, by=0.25). A general solution is this one:

    plot.ts(y,axes=F) # don't plot the axes yet
    axis(2) # plot the y axis
    axis(1, labels=time, at=seq(from=2010, by=0.25, length.out=length(time)) )
    box() # and the box around the plot
    
    0 讨论(0)
提交回复
热议问题