[R] Stacking two graphs with different x and y scale on the same graph

Ogbos Okike g||ted|||e2014 @end|ng |rom gm@||@com
Wed Nov 27 08:55:32 CET 2019


Dear Rui,
Many thanks. It is indeed close to what I am looking for apart from
the issues on the axes.

I am attaching the result plot. The minimum and maximum values of y1
are respectively -5.470919 and 1.298329 while they are 0.0002937659
and 4.808186 for y2.

New problems are: (1) I can't labelled the axis as (x1,x2) persist
when I tried to label the axes. (2) The two plots are merging at some
points. I only want them close but not merging as that does not allow
for meaningful comparison.

It would be great if you could adjust the code further to minimize
these problems.

Thank you.
Best wishes
Ogbos

On Wed, Nov 27, 2019 at 7:58 AM Rui Barradas <ruipbarradas using sapo.pt> wrote:
>
> Hello,
>
> The following is not a complete solution, the axis ranges are wrong, but
> it gets you closer, I think.
>
>
> op <- par(mar = c(5, 5, 5, 5))
>
> plot(c(x1, x2), c(y1, y2), type = "n",xaxt="n", yaxt="n",
>       ylim = range(c(y1, y2)))
>
> par(new=TRUE)
> plot(x1,y1,pch=0,type="b",col="red",yaxt="n",
>       xlab = "", ylab="")
> axis(side=2, at=c(-5,0,2))
> mtext("red line", side = 2, line=2.5, at=0)
>
> par(new=TRUE)
> plot(x2, y2, pch = 1,type="b",col="blue",
>       xaxt="n", yaxt="n",
>       xlab="", ylab="")
> axis(side=4, at=c(-5,-1,0), labels=c("98%","100%","102%"))
> mtext("blue line", side=4, line=2.5, at=0)
>
> par(op)
>
>
>
> Hope this helps,
>
> Rui Barradas
>
> Às 02:53 de 27/11/19, Ogbos Okike escreveu:
> > Dear Contributors,
> > I have two data. A is of the form:
> > 05 01 01  -0.00376058013285748
> > 05 01 02  -0.0765481943910918
> > 05 01 03  -1.28158758599964
> > 05 01 04  -1.51612545416506
> > 05 01 05  -1.39481276373467
> > 05 01 06  -1.17644992095997
> > 05 01 07  -0.788249311582716
> > 05 01 08  -0.925737027403825
> > 05 01 09  -1.02278717974814
> > 05 01 10  -0.982349616271341
> > 05 01 11  -0.61032403228481
> > 05 01 12  -0.197860884821482
> > 05 01 13  -0.173598346735404
> > 05 01 14  -0.270648499079717
> > 05 01 15  -0.173598346735404
> > 05 01 16  -0.343436113337951
> > 05 01 17  -0.949999565489903
> > 05 01 18  -3.60270372956778
> > 05 01 19  -5.47091916219579
> > 05 01 20  -4.67834291805057
> > 05 01 21  -5.42239408602363
> > 05 01 22  -4.19309215632901
> > 05 01 23  -1.79918839850264
> > 05 01 24  -1.04704971783422
> > 05 01 25  -0.642674083066247
> > 05 01 26  -0.505186367245138
> > 05 01 27  -0.472836316463701
> > 05 01 28  -0.537536418026576
> > 05 01 29  -0.311086062556513
> > 05 01 30  -0.00376058013285748
> > 05 01 31  -0.254473473688998
> > 05 02 01  -0.197860884821482
> > 05 02 02  -0.23021093560292
> > 05 02 03  -0.238298448298279
> > 05 02 04  -0.157423321344685
> > 05 02 05  -0.060373169000373
> > 05 02 06  0.109464597602174
> > 05 02 07  0.02858947064858
> > 05 02 08  -0.0846357070864511
> > 05 02 09  -0.189773372126123
> > 05 02 10  -0.278736011775076
> > 05 02 11  -0.302998549861154
> > 05 02 12  -0.0684606816957324
> > 05 02 13  0.0852020595160955
> > 05 02 14  0.133727135688252
> > 05 02 15  0.0528520087346581
> > 05 02 16  0.0771145468207362
> > 05 02 17  -0.0361106309142949
> > 05 02 18  -0.205948397516842
> > 05 02 19  -0.383873676814748
> > 05 02 20  -0.383873676814748
> > 05 02 21  -0.294911037165795
> > 05 02 22  -0.197860884821482
> > 05 02 23  -0.214035910212201
> > 05 02 24  -0.165510834040045
> > 05 02 25  -0.0522856563050137
> > 05 02 26  0.0366769833439393
> > 05 02 27  0.141814648383611
> > 05 02 28  0.101377084906814
> > 05 03 01  0.15798967377433
> > 05 03 02  0.222689775337205
> > 05 03 03  0.27930236420472
> > 05 03 04  0.327827440376876
> > 05 03 05  0.214602262641845
> > 05 03 06  0.133727135688252
> > 05 03 07  0.166077186469689
> >   and B is of the form:
> > 05 01 03  1.0401704890785
> > 05 01 04  1.1881431442713
> > 05 01 05  0.899433543239033
> > 05 01 06  0.495029973508058
> > 05 01 18  2.51141960034673
> > 05 01 19  4.80818567931821
> > 05 01 20  3.82649399122216
> > 05 01 21  4.75619054623929
> > 05 01 22  3.25702525028531
> > 05 01 23  0.328654748869008
> > 05 02 10  0.0689360507407491
> > 05 02 11  0.192369729879942
> > 05 02 15  0.0684297713902015
> > 05 02 16  0.100584435166215
> > 05 02 17  0.295302934161718
> > 05 02 18  0.552388788420635
> > 05 02 19  0.811732847306371
> > 05 02 20  0.843313045760178
> > 05 02 21  0.757193220375875
> > 05 02 22  0.65352100387166
> > 05 02 23  0.68252482652902
> > 05 02 24  0.624510062816789
> > 05 02 25  0.479854370620533
> > 05 02 26  0.359002279153697
> > 05 02 27  0.212459089641907
> > 05 02 28  0.240784160160447
> > 05 03 01  0.144583652487177
> > 05 03 02  0.0345028244394553
> > 05 03 21  0.023582430982633
> > 05 03 22  0.000293765928922767
> > 05 03 27  0.0440288222469235
> > 05 03 28  0.106263428254761
> > 05 03 29  0.291212461872628
> > 05 03 30  0.198305017329253
> > 05 03 31  0.186935599530143
> > 05 04 01  0.316471519561273
> > 05 04 02  0.266260602009615
> > 05 04 03  0.0456391152384458
> > 05 04 04  0.113939833419049
> > 05 04 05  0.140500137811164
> > 05 04 06  0.374670064516577
> > 05 04 07  0.295820206701906
> > 05 04 08  0.0833493810907385
> > 05 04 10  0.0253248646840757
> > 05 04 11  0.188773903020133
> > 05 04 12  0.206619775067284
> > 05 04 13  0.408503282817833
> > 05 04 14  0.344129922512134
> > 05 04 15  0.283273728250647
> > 05 04 16  0.155780334719261
> > 05 04 17  0.0815692243668445
> > B is extracted from A and I wish to plot A and B on the same x-axis
> > but different y axis on the same graph. Stacking very close helps to
> > illustrates the common rapid variations in A, represented in B.
> >
> > One of the codes I tried without success is:
> > data <- read.table("A", col.names = c("year", "month", "day", "counts"))
> >
> > 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
> > y1=data$counts
> > #y1=scale(data$counts)
> >
> >
> > data <- read.table("B", col.names = c("year", "month", "day", "counts"))
> >
> > 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
> > y2=data$counts
> >
> >
> > pdf("PLOT.pdf")
> >
> >   par(mar=c(5,5,5,5))
> >
> > plot(x1,y1,pch=0,type="b",col="red",yaxt="n",ylim=c(-5.470919,1.298329),ylab="")
> > axis(side=2, at=c(-6,0,2))
> > mtext("red line", side = 2, line=2.5, at=0)
> >
> > par(new=TRUE)
> > plot(x2,y2,pch=1,type="b",col="blue",yaxt="n",ylim=c(-4.808186,0.0), ylab="")
> > axis(side=4, at=c(-5,-1,0), labels=c("98%","100%","102%"))
> > mtext("blue line", side=4, line=2.5, at=100)
> > dev.off()
> >
> > Your assistance is ever appreciated.
> > 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.
> >

-------------- next part --------------
A non-text attachment was scrubbed...
Name: TEST.pdf
Type: application/pdf
Size: 7915 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20191127/8a852f98/attachment.pdf>


More information about the R-help mailing list