
Last chance! 50% off unlimited learning
Sale ends in
oce.plot.ts(x, y, type="l", xlim, ylim, xlab, ylab,
drawTimeRange=TRUE, adorn=NULL, fill=FALSE,
cex=par("cex"), cex.axis=par("cex.axis"), cex.main=par("cex.main"),
mgp=getOption("oceMgp"),
mar=c(mgp[1]+if(nchar(xlab)>0) 1.5 else 1, mgp[1]+1.5, mgp[2]+1, mgp[2]+3/4),
mai.palette=c(0, 1/8, 0, 3/8),
main="",
despike=FALSE,
axes=TRUE, tformat,
marginsAsImage=FALSE,
grid=FALSE, grid.col="darkgray", grid.lty="dotted", grid.lwd=1,
debug=getOption("oceDebug"),
...)
"l"
for lines, "p"
for points.TRUE
to indicate the range of times
in the top-left margin.expression
to be performed
immediately after drawing the panel. (See plot.adp
for
an example.)TRUE
to fill the curve to zero (which it
does incorrectly if there are missing values in y
).""
.par
("cex").par
("cex.axis").par
("cex.main").par(mgp)
, and
also for par(mar)
, computed from this. The default is
tighter than the R default, in order to use more space for the
data and less for the axes.par("mar")
.despike
.TRUE
to get axes plottedimagep
.TRUE
, a grid will be drawn for each panel. (This
argument is needed, because calling grid
after doing a
sequence of plots will not result in useful results for the individual
panelplot
.plot
and
plot.ts
routines will not obey the time zone of the
data. This routine gets around that problem. It can also plot the
time range in the top-left margin, if desired; this string includes
the timezone, to remove any possible confusion.The time axis is drawn with oce.axis.POSIXct
.
library(oce)
t.start <- as.POSIXct("2008-01-01", tz="UTC")
t <- seq(t.start, length.out=48, by="30 min")
y <- sin(as.numeric(t - t.start) * 2 * pi / (12 * 3600))
oce.plot.ts(t, y, type='l', xaxs='i')
weatherplot <- function(id=6358, time=as.POSIXlt(Sys.Date()))
{
## The default stationID is Halifax, NS, Canada
site <- "http://www.climate.weatheroffice.gc.ca/climateData/bulkdata_e.html"
time <- as.POSIXlt(time)
f <- paste(site,
"?timeframe=1&StationID=", id,
"&&Year=", time$year+1900,
"&Month=", time$mon+1,
"&Day=", time$mday,
"&format=csv", sep="")
## Read lines first, to see where header ends. Cannot parse header, owing
## to multi-byte strings there.
ll <- readLines(f)
skip <- which(grepl("Date", ll, perl=TRUE))
d <- read.csv(f, skip=skip, header=FALSE)
t <- as.POSIXct(d[,1])
p <- d[,19]
oce.plot.ts(t, p, type='l', ylab="Pressure [dbar]", cex=2/3, main=paste("Station", id))
}
weatherplot()
Run the code above in your browser using DataLab