2013-12-16 8 views
7
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="",header=TRUE) 
y<-ts(as.vector(as.matrix(x)),frequency=4,start=c(2010,1)) 
plot.ts(y) 
time<-seq(as.Date("2010/1/1"),length.out=20,by="3 months") 
axis(1, at = time) 

की साजिश रचने जब मैं ग्राफ आकर्षित, मैं क्यों मेरे axis(1, at = time) एक्स अक्ष में तारीख डेटा नहीं जोड़ सकते एक्स अक्ष, में तारीख जोड़ना चाहते हैं?सेट x- अक्ष लेबल जब समय श्रृंखला

उत्तर

6

जब आप axis(1, at=time) पर कॉल करते हैं तो आप time द्वारा दिए गए अंकों पर एक्स अक्ष को लेबल के साथ प्लॉट करने के लिए कह रहे हैं। हालांकि, time वर्णों का एक वेक्टर है, संख्याओं की संख्या नहीं।

सामान्य रूप से, आप axis(1, at=..., labels=...) को वास्तविक लेबल इंगित करते हैं और उन्हें धुरी के साथ कहां रखा जाता है। आपके मामले में, plot.ts पर आपकी कॉल x-axis सीमा को 2010 और 2013.75 पर सेट करती है, इसलिए आपके at पैरामीटर को उन सीमाओं को प्रतिबिंबित करना चाहिए।

तो आप axis पर कॉल करना चाहते हैं कि लेबल time हैं और स्थिति 2010, 2010.25, 2010.50 ... है, यानी seq(from=2010, to=2013.25, by=0.25) है। एक सामान्य समाधान यह है:

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 
संबंधित मुद्दे