On 27/09/19 10:27 AM, Rich Shepard wrote:

I want to plot maximum and minimum water temperatures on the same axes and
thought I had the correct syntax:

watertemp <- read.table("../../data/hydro/water-temp.dat", header = TRUE, sep =",")
watertemp$sampdate <- as.Date(as.character(watertemp$sampdate))
watertempsum <- summary(watertemp)
print(watertempsum)
maxwatemp <- xyplot(maxtemp ~ sampdate, data=watertemp, col="red", type="h", main="USGS Foss Gauge Water Temperatures, 1974-1981", ylab="Temperature (C)", xlab="Date", scales=list(tck=c(1,0))) minwatemp <- xyplot(mintemp ~ sampdate, data=watertemp, col="blue", type="h")
plot(maxwatemp)
par(new=TRUE)
plot(minwatemp)

However, R plots only minwatemp and displays this:
Warning message:
In par(new = TRUE) : calling par(new=TRUE) with no plot

Despite my searching for the reason I don't see what syntax error I made.
The two questions I ask of you:

1. Where have I gone wrong in this script?

2. With 2,492 daily observations in the source file (including 242 NAs for
maxtemp and 243 NAs for mintemp), what would be a more appropriate plot to
show both sets of data?

You are using xyplot() from the lattice package (which you did not mention). Your par(new=TRUE) syntax would probably work with base R graphics (although it would be suboptimal; one would normally use points() to add a second graph on the same figure). I would hazard that it won't work at all with lattice graphics.

Moreover you seem to be trying to mix lattice graphics and base R graphics in a higgledy-piggledy fashion: first you call xyplot() and then you call plot().

To do what you want with lattice graphics I think you need to learn about and apply *panels* --- in particular panel.points(). Using panels appropriately is a bit tricky, I find, and requires some study.

You may better off using base R graphics, unless there are considerations which demand the use of lattice. Something like this, maybe:

plot(maxtemp ~ sampdate, data=watertemp, type="h", col="red",
                         <annotation arguments>)
points(maxtemp ~ sampdate, data=watertemp, type="h",col="blue")

(Not tested since your example is not reproducible.)

cheers,

Rolf Turner

--
Honorary Research Fellow
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

______________________________________________
R-help@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.

Reply via email to