[R] Labeling Dates of different length on two in axis plot

Ogbos Okike g||ted|||e2014 @end|ng |rom gm@||@com
Sun Aug 25 19:06:07 CEST 2019


Dear Bert and Jim,
Here is the code:
data <- read.table("CLMX.txt", col.names = c("year", "month", "day", "CLMX"))

new.century <- data$year < 50

data$year <- ifelse(new.century, data$year + 2000, data$year + 1900)

data$date <- as.Date(ISOdate(data$year, data$month, data$day))
x1 = data$date


 Li<-data$CLMX
###########
data <- read.table("DPRV.txt", col.names = c("year", "month", "day", "DPRV"))

new.century <- data$year < 50

data$year <- ifelse(new.century, data$year + 2000, data$year + 1900)

data$date <- as.Date(ISOdate(data$year, data$month, data$day))
x2 = data$date


CR<-data$DPRV



 ###################
  date_x1<-seq(as.Date("1953-01-02"),as.Date("2006-11-15"),length.out=1575)
date_x2<-seq(as.Date("1957-07-26"),as.Date("1994-07-17"),length.out=1203)


pdf("CLMXandDPRV.pdf")
 par(mar = c(5, 4, 4, 4) + 2)
library(plotrix)
plot(date_x1,Li,pch=16,axes=FALSE,xlab="",ylab="",type="l",col="black",ylim=c(-0.5001663,-10.27402))
points(date_x1,Li,col="black")
axis(2, ylim=c(-0.5001663,-10.27402),col="black",las=1)
mtext("FD (%)", side=2, line=4)
text(as.Date("1992-02-21"),3523,"FD1")

text(as.Date("1972-02-28"),-8,"Total FDs = 1203",col="red")
text(as.Date("1972-03-02"),-9,"Total FDs = 1575")
#box()

par(new=TRUE)
plot(date_x2,CR, pch=16,
xlab="",ylab="",ylim=c(-0.5030138,-14.39884),axes=FALSE,type="l",col="red")
points(date_x2,CR,col="red")
mtext("FD (%)",side=4,col="red",line=3)
axis(4, ylim=c(-0.5030138,-14.39884), col="red",col.axis="red",las=1)




mtext("Date",side=1,col="black",line=2.5)

legend("topleft",col=c("red","black"),lty=1,legend=c("DPRV","CLMX"))

dev.off()

Thanks again.
Best wishes
Ogbos


On Sun, Aug 25, 2019 at 4:52 PM Ogbos Okike <giftedlife2014 using gmail.com> wrote:
>
> Dear Jim and Bert,
> Thank your for looking into this for me. I will try to reproduce a
> part of my data and the plot I have.
>
> Data 1:
> 53 01 02 -1.28792560381641
> 53 01 06 -1.1854773963453
> 53 01 08 -1.55920165458006
> 53 01 15 -1.29196482429683
> 53 01 20 -1.06082194329819
> 53 01 22 -1.15430411152234
> 53 01 24 -1.14775155345262
> 53 01 26 -1.19116423468105
> 53 01 28 -0.924542121164923
> 53 01 31 -0.869543637175866
> 53 02 03 -0.764466677206437
> 53 02 05 -0.707705051599105
> 53 02 07 -0.750908466521414
> 53 02 16 -1.6848903649715
> 53 02 20 -0.760876361940755
> 53 02 22 -0.803816591115474
> 53 02 26 -0.818160891300922
> 53 02 28 -0.831013020625678
> 53 03 04 -1.06661138281899
> till the year 2006. The length is 1575
>
> Data B:
> 57 07 26 -3.62351759422703
> 57 07 29 -4.51297753038541
> 57 08 02 -3.29214621128099
> 57 08 05 -6.44144118698436
> 57 08 16 -3.09828319252649
> 57 08 22 -1.58619965424759
> 57 08 28 -4.3638763217976
> 57 08 30 -9.93305062749234
> 57 09 03 -9.29132498735799
> 57 09 05 -8.50042591710719
> 57 09 13 -5.58659819576993
> 57 09 19 -2.4834966827445
> 57 09 23 -5.69132573226493
> 57 09 26 -3.6296458026372
> to  the year 1994. The length is 1203.
>
> The plot is attached. How to label the x-axis is the problem.
> I will send the code in another email so that the moderator will let it go.
> Thank again
> Best
> Ogbos
>
> On Sun, Aug 25, 2019 at 3:58 PM Bert Gunter <bgunter.4567 using gmail.com> wrote:
> >
> > I think you will need to show us your code to get useful help (see the posting guide). A small subset of your data and a reprex may also be needed. R has several different graphics systems, and the answer depends on which you are using. In base graphics, the axis() function (see its Help page) may be what you need, but that's just a guess. Others may be able to be more specific.
> >
> > Cheers,
> > Bert
> >
> > Bert Gunter
> >
> > "The trouble with having an open mind is that people keep coming along and sticking things into it."
> > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
> >
> >
> > On Sat, Aug 24, 2019 at 9:49 PM Ogbos Okike <giftedlife2014 using gmail.com> wrote:
> >>
> >> Dear Contributors,
> >> I have two dataset of different lengths, each containing year, month,
> >> day and counts.
> >> After converting the date using as.Date function, I plotted the two
> >> dateset on one graph. That was fine.
> >>
> >> I am, however, having problems with the axis 1 where I am trying to
> >> put the dates.
> >> Since the two dates are not exactly the same, I stored the first date
> >> as x1 and the second x2. x1 runs from 1953-01-02 to 2006-11-15 while
> >> the range of x2 is between 1957-07-26 and 1994-07-17.
> >> I tired a number of approaches but the one that seems to come close to
> >> what I am looking for is: axis.Date(1, at=seq(min(x1), max(x1), by="50
> >> mon"), format="%Y").
> >>
> >> Unfortunately, it only labeled the axis up to 1994 even when I tried
> >> to replace x1 with x2 in the code. Since one of the dates is up to
> >> 2006, I I wish to display the minimum (1953) and maximum  (2006) dates
> >> and some possible intermediary dates.
> >> I am always indebted to you.
> >>
> >> Best wishes
> >> Ogbos
> >>
> >> ______________________________________________
> >> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> 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.



More information about the R-help mailing list