[R] Σχετ: show 0 at y axis in xyplot lattice
Jeff Newmiller
jdnewmil at dcn.davis.ca.us
Tue Sep 12 19:50:40 CEST 2017
It contains the output of one call to dput, but several objects were missing and the name of the object provided in the text file was not specified.
--
Sent from my phone. Please excuse my brevity.
On September 12, 2017 10:22:36 AM PDT, Michael Dewey <lists at dewey.myzen.co.uk> wrote:
>Dear Maria
>
>The file you attached to your first e-mail did come through but I think
>
>some people on the list must have missed it.
>
>Michael
>
>On 12/09/2017 12:54, Maria Lathouri via R-help wrote:
>> Dear all,
>> Thank you very much for the help. ylim=c(-5, 80) worked.
>> Regarding the reproducible example, I used dput () and saved the file
>as txt. It is not the first time that I used this way and normally it
>works. Because when I try to attach a .csv file with the data, most of
>the time it doesn't go through.
>> I will know for the next time.
>> Many thanks.
>> Regards,Maria
>>
>> Στις 2:11 π.μ. Τρίτη, 12 Σεπτεμβρίου 2017, ο/η Duncan Mackay
><dulcalma at bigpond.com> έγραψε:
>>
>>
>> Hi Maria
>>
>> Rule 1 make sure your data is in the right format
>>
>> dat <- source("G:/1/savedat.txt")
>>> dat
>> $value
>> Location Date Zn2 upper.zn lower.zn
>> 1 upstream 2016-04-27 29.92477 55.59800 13.912207
>> 2 spill 2016-04-27 12.84040 22.07006 6.964934
>> 3 downstream 2016-04-27 22.49673 41.60901 11.739109
>> 4 upstream 2016-06-28 23.98425 45.60219 10.690640
>> 5 spill 2016-06-28 41.51336 77.99893 20.142426
>> 6 downstream 2016-06-28 15.51232 26.94059 7.044781
>> 7 upstream 2016-08-25 21.73037 40.95852 10.354620
>> 8 spill 2016-08-25 13.42082 22.96901 7.472893
>> 9 downstream 2016-08-25 10.99209 20.17471 5.324318
>> 10 upstream 2016-10-25 20.82462 40.60564 9.602007
>> 11 spill 2016-10-25 14.01283 25.07032 7.830504
>> 12 downstream 2016-10-25 15.67740 30.42278 6.971944
>> 13 upstream 2016-12-21 28.14966 51.79390 14.384139
>> 14 spill 2016-12-21 13.91587 23.94368 8.164688
>> 15 downstream 2016-12-21 13.02749 24.46930 5.826650
>> 16 upstream 2017-02-20 31.16736 55.51858 15.938211
>> 17 spill 2017-02-20 12.47368 22.03830 6.725540
>> 18 downstream 2017-02-20 17.65741 33.23577 8.519928
>>
>> $visible
>> [1] TRUE
>> dat <- dat$value
>> dat$dDate <- as.Date(as.character(dat$Date))
>>
>> str(dat)
>> 'data.frame': 18 obs. of 6 variables:
>> $ Location: Factor w/ 3 levels "downstream","spill",..: 3 2 1 3 2 1
>3 2 1 3 ...
>> $ Date : Factor w/ 6 levels "2016-04-27","2016-06-28",..: 1 1 1
>2 2 2 3 3 3 4 ...
>> $ Zn2 : num 29.9 12.8 22.5 24 41.5 ...
>> $ upper.zn: num 55.6 22.1 41.6 45.6 78 ...
>> $ lower.zn: num 13.91 6.96 11.74 10.69 20.14 ...
>> $ dDate : Date, format: "2016-04-27" "2016-04-27" "2016-04-27"
>"2016-06-28" ...
>>
>> You code to reproduce the xyplot is not reproducible as it contains
>user defined objects which you have not included.
>> Here is something to get you started,
>> If you want the measurement dates on the x-axis you will need to put
>the required dates and format in the scales argument.
>> Using par.settings for the symbols an lines will pass those values
>onto key
>>
>> xyplot(upper.zn + Zn2 + lower.zn ~ dDate | Location, data=dat,
>> type = "b",
>> as.table = TRUE,
>> par.settings = list(strip.background = list(col =
>"transparent"),
>> superpose.symbol = list( col=c("red",
>"black", "red"),
>> cex = 1,
>> pch = c(22, 21, 22)),
>> superpose.line = list (col=c("red",
>"black", "red"),
>> lty = c(2, 1, 2),
>> lwd = 1)
>> ),
>> auto.key = list(points = TRUE, lines = TRUE),
>> scales = list(x = list(alternating = FALSE,
>> at = seq(from =
>as.Date("2016-04-01"), to = as.Date("2017-04-01"), by = "quarter"),
>> label = format(seq(from =
>as.Date("2016-04-01"), to = as.Date("2017-04-01"), by = "quarter"), "%Y
>%b"),
>> relation = "same",
>> rot = 60),
>> y = list(alternating = FALSE,
>> at = seq(0,80,20),
>> relation = "same",
>> rot = 0)
>> ),
>> # pch=c(22, 21, 22),
>> # lty=c(2, 1, 2),
>> xlim = range(seq(from = as.Date("2016-04-01"), to =
>as.Date("2017-04-01"), by = "quarter")),
>> ylim=c(-5, 80),
>> index.cond=list(c(3, 1, 2)),
>> ylab="Percent (%)",
>> # par.strip.text=list(col="white", font=2, lines=1.5),
>> # lattice.options = modifyList(lattice.options(),
>list(skip.boundary.labels = 0)),
>> # par.settings=my.settings, col=c("red", "black", "red"),
>fill=c("red", "black", "red"),
>> # key=dat_key,
>> # scales = list(x = list(at = sdate, labels = format(sdate,
>"%b-%y"))), xlab="Date",
>> panel = function(x, y, ...) {
>> panel.grid(h = -1, v = 0, lwd=1, lty=3, col="grey")
>> panel.abline(v=dat$dDate, lwd=1, lty=3, col="grey")
>> panel.xyplot(x, y, ...)
>> }
>> )
>>
>> As you have upper and lower levels of Zn you may want to look at
>?panel.polygon
>>
>> Regards
>>
>> Duncan
>>
>> Duncan Mackay
>> Department of Agronomy and Soil Science
>> University of New England
>> Armidale NSW 2350
>>
>>
>>
>> -----Original Message-----
>> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Maria
>Lathouri via R-help
>> Sent: Tuesday, 12 September 2017 05:33
>> To: R-help Mailing List
>> Subject: [R] show 0 at y axis in xyplot lattice
>>
>> Dear all
>> I am trying to make a plot in xyplot lattice by groups. I would like
>to show "0" in y axis but I don't want to be aligned with the x axis. I
>want to be a little bit above.
>> I have tried many options but I don't get what I want. I also tried
>ylim=c(0, 80) but both 0 and 80 are fully aligned with the x-axis and
>the upper boundary of the plot, respectively:
>> xyplot(upper.zn + Zn2 + lower.zn ~ sdate | Location, type="b",
>as.table=TRUE, data=dat, pch=c(22, 21, 22), lty=c(2, 1, 2), ylim=c(0,
>80),
>> index.cond=list(c(3, 1, 2)), ylab="Percent (%)",
>par.strip.text=list(col="white", font=2, lines=1.5),
>> lattice.options = modifyList(lattice.options(),
>list(skip.boundary.labels = 0)),
>> par.settings=my.settings, col=c("red", "black", "red"),
>fill=c("red", "black", "red"),
>> key=dat_key, scales = list(x = list(at = sdate, labels =
>format(sdate, "%b-%y"))), xlab="Date",
>> panel = function(x, y, ...) {
>> panel.grid(h = -1, v = 0, lwd=1, lty=3, col="grey")
>> panel.abline(v=sdate, lwd=1, lty=3, col="grey")
>> panel.xyplot(x, y, ...)
>> }
>> )
>> when I use the following, 80 is a bit lower than the upper boundary
>of the plot, which is what I want, but 0 is not showing:
>> xyplot(upper.zn + Zn2 + lower.zn ~ sdate | Location, type="b",
>as.table=TRUE, data=dat, pch=c(22, 21, 22), lty=c(2, 1, 2),
>> index.cond=list(c(3, 1, 2)), ylab="Percent (%)",
>par.strip.text=list(col="white", font=2, lines=1.5),
>> lattice.options = modifyList(lattice.options(),
>list(skip.boundary.labels = 0)),
>> par.settings=my.settings, col=c("red", "black", "red"),
>fill=c("red", "black", "red"),
>> key=dat_key, scales = list(x = list(at = sdate, labels =
>format(sdate, "%b-%y")), y=list(at=c(0, 20, 40, 60, 80))), xlab="Date",
>> panel = function(x, y, ...) {
>> panel.grid(h = -1, v = 0, lwd=1, lty=3, col="grey")
>> panel.abline(v=sdate, lwd=1, lty=3, col="grey")
>> panel.xyplot(x, y, ...)
>> }
>> )I have also attached a reproducible example in case you
>want to see in more detail my data.
>> I would very much appreciate any suggestions on this.
>> Thank you in advance.
>> Kind regards,Maria
>>
>>
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at 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.
>>
>> ---
>> This email has been checked for viruses by AVG.
>> http://www.avg.com
>>
>
>--
>Michael
>http://www.dewey.myzen.co.uk/home.html
>
>______________________________________________
>R-help at 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