blob: 4b687fb65de46d034f7b6dd87877a8dfd2f497d8 [file] [log] [blame] [edit]
% File src/library/graphics/man/hist.POSIXt.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2021 R Core Team
% Distributed under GPL 2 or later
\name{hist.POSIXt}
\alias{hist.POSIXt}
\alias{hist.Date}
\title{Histogram of a Date or Date-Time Object}
\description{
Methods for \code{\link{hist}} applied to date (class \code{"\link{Date}"})
or date-time (class \code{"\link{POSIXt}"}) objects.
}
\usage{
\method{hist}{POSIXt}(x, breaks, \dots,
xlab = deparse1(substitute(x)),
plot = TRUE, freq = FALSE,
start.on.monday = TRUE, format, right = TRUE)
\method{hist}{Date}(x, breaks, \dots,
xlab = deparse1(substitute(x)),
plot = TRUE, freq = FALSE,
start.on.monday = TRUE, format, right = TRUE)
}
\arguments{
\item{x}{an object inheriting from class \code{"\link{POSIXt}"}
or \code{"\link{Date}"}.}
\item{breaks}{
a vector of cut points \emph{or} number giving the number of
intervals which \code{x} is to be cut into \emph{or} an
interval specification, one of \code{"days"}, \code{"weeks"},
\code{"months"}, \code{"quarters"} or \code{"years"},
plus \code{"secs"}, \code{"mins"}, \code{"hours"} for
date-time objects.
}
\item{\dots}{\link{graphical parameters}, or arguments to
\code{\link{hist.default}} such as \code{include.lowest},
\code{density} and \code{labels}.}
\item{xlab}{a character string giving the label for the x axis, if plotted.}
\item{plot}{logical. If \code{TRUE} (default), a histogram is
plotted, otherwise a list of breaks and counts is returned.}
\item{freq}{logical; if \code{TRUE}, the
histogram graphic is a representation of frequencies, i.e,
the \code{counts} component of the result; if \code{FALSE},
\emph{relative} frequencies (probabilities) are plotted.}
\item{start.on.monday}{logical. If \code{breaks = "weeks"}, should the
week start on Mondays or Sundays?}
\item{format}{for the x-axis labels. See \code{\link{strptime}}.}
\item{right}{logical; if \code{TRUE}, the histogram cells are
right-closed (left open) intervals.}
}
\details{
Note that unlike the default method, \code{breaks} is a required argument.
Using \code{breaks = "quarters"} will create intervals of 3 calendar
months, with the intervals beginning on January 1, April 1,
July 1 or October 1, based upon \code{min(x)} as appropriate.
With the default \code{right = TRUE}, breaks will be set
on the last day of the previous period when \code{breaks} is
\code{"months"}, \code{"quarters"} or \code{"years"}. Use
\code{right = FALSE} to set them to the first day of the
interval shown in each bar.
}
\value{
An object of class \code{"histogram"}: see \code{\link{hist}}.
}
\seealso{
\code{\link{seq.POSIXt}}, \code{\link{axis.POSIXct}}, \code{\link{hist}}
}
\examples{
hist(.leap.seconds, "years", freq = TRUE)
brks <- seq(ISOdate(1970, 1, 1), ISOdate(2030, 1, 1), "5 years")
hist(.leap.seconds, brks)
rug(.leap.seconds, lwd=2)
## show that 'include.lowest' "works"
stopifnot(identical(c(2L, rep(1L,11)),
hist(brks, brks, plot=FALSE, include.lowest=TRUE )$counts))
tools::assertError(verbose=TRUE, ##--> 'breaks' do not span range of 'x'
hist(brks, brks, plot=FALSE, include.lowest=FALSE))
## The default fuzz in hist.default() "kills" this, with a "wrong" message:
try ( hist(brks[-13] + 1, brks, include.lowest = FALSE) )
## and decreasing 'fuzz' solves the issue:
hb <- hist(brks[-13] + 1, brks, include.lowest = FALSE, fuzz = 1e-10)
stopifnot(hb$counts == 1)
## 100 random dates in a 10-week period
random.dates <- as.Date("2001/1/1") + 70*stats::runif(100)
hist(random.dates, "weeks", format = "\%d \%b")
}
\keyword{chron}
\keyword{dplot}
\keyword{hplot}