[R] ggplot "scale_x_date" : to plot quarterly scale?

Franklin Mairura fsmairura at yahoo.com
Tue Oct 14 11:51:45 CEST 2014


Dear jpm, have attached a simpler example, hope this helps. Regards. 


plot(0:100,pch="",xaxt="n",)
axis(1, at=1,lab=c("abcd"),cex.axis=1,font=4)
 axis(1, at=20,lab=c("efgh"),cex.axis=1,font=4)
axis(1, at=60,lab=c("ijkl"),cex.axis=1,font=4)




On Tuesday, October 14, 2014 11:48 AM, Franklin Mairura <fsmairura at yahoo.com> wrote:
 




Try this code, this may get a solution close to what you need. The advantage with this code is that you specify the text you want to appear on the xaxis. The dates have to be supplied as text formats, and located on the xaxis using the axis and at commands. the at command allows for customised location whether intervals are equal or not. The matplot command draws the lineplot, which is basically what a time series is. Using excel makes customised syntax building for R easier, by the CONCATENATE Excel worksheet functuion. 


Canopy<-(factor(c(1,2,3)))
a<-c(0.336,0.852,0.794)
b<-c(0.21,0.353333333333333,0.878333333333333)
c<-c(0.443333333333333,0.65,1.18833333333333)
d<-c(0.052,0.106,0.142)
e<-c(0.275,0.203333333333333,0.633333333333333)
f<-c(0.35,0.365,0.796666666666667)
g<-c(0.16,0.466666666666667,0.696666666666667)
h<-c(0.586666666666667,0.873333333333333,2.29)
i<-c(0.836666666666667,2.55625,2.675)
j<-c(0.536666666666667,1.68,2.52333333333333)
k<-c(0.163333333333333,0.136666666666667,0.156666666666667)
l<-c(0.186666666666667,0.228333333333333,0.446666666666667)
m<-c(0.175,0.265,0.755)
n<-c(0.536,1.834,2.378)
o<-c(0.248333333333333,1.05666666666667,1.60666666666667)
p<-c(1.07,0.9275,2.05)
q<-c(0.1225,0.5975,0.6075)
r<-c(0.155,0.325,1.635)
s<-c(0.418333333333333,1.82,3.68333333333333)
t<-c(1.25,1.2925,2.3925)
u<-c(1.416,2.304,2.258)
v<-c(0.446666666666667,1.235,2.85)

RUST<-data.frame(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v)

matplot(ylim=c(0,5),Canopy,RUST,type="o",pch=c(1:23),lty=c(1:23),col=c(1:23),xaxt="n",lwd=2,cex=1.5,ylab="Rust Score",xlab="Canopy level")
axis(1, at=1:3,lab=c("Top","Middle","Lower"),cex.axis=1,font=4)
#mtext("Canopy level",side=1,line=3,)
legend("topleft",col=c(1:23),cex=0.6,ncol=2,pch=c(1:23),lwd=2,lty=c(1:23),c("a","b","c","d","e","f","g",
"h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w"))

segments(1,1.71535,1,2.28465)
segments(2,2.868,2,3.532)
segments(3,4.169,3,5.031)
segments(0.99,1.71535,1.01,1.71535)
segments(0.99,2.28465,1.01,2.28465)
segments(1.99,2.868,2.01,2.868)
segments(1.99,3.532,2.01,3.532)
segments(2.99,5.031,3.01,5.031)
segments(2.99,4.169,3.01,4.169)



On Tuesday, October 14, 2014 10:37 AM, jpm miao <miaojpm at gmail.com> wrote:
 


Hi,

  I am plotting time series by  ggplot2, but I believe that my question
applies to other plotting tool as well.

  I want to make my x-axis the quarterly scale, e.g:
2000Q1 2000Q2.....

   However, scale_x_date and date_format("%m/%d") support all time formats
BUT QUARTERs........

library(scales) # to access breaks/formatting functions
dt + scale_x_date()
dt + scale_x_date(labels = date_format("%m/%d"))

   Is there any solution?

Thanks!

    [[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
	[[alternative HTML version deleted]]



More information about the R-help mailing list