percentileRose
plots percentiles by wind direction
with flexible conditioning. The plot can display mutiple percentile
lines or filled areas.percentileRose(mydata, pollutant = "nox", type = "default",
percentile = c(25, 50, 75, 90, 95), cols = "default",
fill = TRUE, lwd = 2,
angle.scale = 45,
main = "", auto.text = TRUE, key.header = NULL,
key.footer = "percentile", key.position = "bottom",
key = TRUE, ...)
wd
and a numeric
field to plot --- pollutant
.pollutant =
"nox"
. More than one pollutant can be supplied e.g. pollutant =
c("no2", "o3")
provided there is only one type
determines how the data are split
i.e. conditioned, and then plotted. The default is will produce a
single plot using the entire data. Type can be one of the built-in
types as detailed in cutData
e.g. "season", "yeacolours()
to see the full list). An example wofill = FALSE
).fill = FALSE
.angle.scale
to another value (between 0 and 360 degrees) to mitiTRUE
(default) or FALSE
. If
TRUE
titles and axis labels will automatically try and format
pollutant names and units properly e.g. by subscripting the
key.header =
"header", key.footer = "footer"
adds addition text
above and below the scale key. These arguments are passed to
drawOpenKey
via"top"
, "right"
,
"bottom"
and "left"
.drawOpenKey
. See
drawOpenKey
for further details.lattice:xyplot
and cutData
. For example, in the case
of cutData
the option hemisphere = "southern"
.percentileRose
also returns an object of class ``openair''. The object includes three
main components: call
, the command used to generate the plot;
data
, the data frame of summarised information used to make the
plot; and plot
, the plot itself. If retained, e.g. using
output <- percentileRose(mydata, "nox")
, this output can be
used to recover the data, reproduce or rework the original plot or
undertake further analysis.
An openair output can be manipulated using a number of generic
operations, including print
, plot
and
summary
. See openair.generics
for further
details.percentileRose
calculates percentile levels of a pollutant and
plots them by wind direction. One or more percentile levels can be
calculated and these are displayed as either filled areas or as lines.
The levels by wind direction are calculated using a cyclic smooth cubic
spline. The wind directions are rounded to the nearest 10 degrees,
consistent with surface data from the UK Met Office before a smooth is
fitted.
The percentileRose
function compliments other similar functions
including windRose
, pollutionRose
,
polarFreq
or polarPlot
. It is most useful
for showing the distribution of concentrations by wind direction and
often can reveal different sources e.g. those that only affect high
percentile concentrations such as a chimney stack.
Similar to other functions, flexible conditioning is available through
the type
option. It is easy for example to consider multiple
percentile values for a pollutant by season, year and so on. See
examples below.
percentileRose
also offers great flexibility with the scale used and
the user has fine control over both the range, interval and colour.windRose
, pollutionRose
,
polarFreq
, polarPlot
# basic percentile plot
percentileRose(mydata, pollutant = "o3")
# 50/95th percentiles of ozone, with different colours
percentileRose(mydata, pollutant = "o3", percentile = c(50, 95), col = "brewer1")
# percentiles of ozone by year, with different colours
percentileRose(mydata, type = "year", pollutant = "o3", col = "brewer1")
# percentile concentrations by season and day/nighttime..
percentileRose(mydata, type = c("season", "daylight"), pollutant = "o3", col = "brewer1")
Run the code above in your browser using DataLab