Learn R Programming

openair (version 0.4-23)

percentileRose: Function to plot percentiles by wind direction

Description

percentileRose plots percentiles by wind direction with flexible conditioning. The plot can display mutiple percentile lines or filled areas.

Usage

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,  ...)

Arguments

mydata
A data frame minimally containing wd and a numeric field to plot --- pollutant.
pollutant
Mandatory. A pollutant name corresponding to a variable in a data frame should be supplied e.g. pollutant = "nox". More than one pollutant can be supplied e.g. pollutant = c("no2", "o3") provided there is only one
type
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", "yea
percentile
The percentile value(s) to plot. Must be between 0--100.
cols
Colours to be used for plotting. Options include "default", "increment", "heat", "jet" and user defined. For user defined the user can supply a list of colour names recognised by R (type colours() to see the full list). An example wo
fill
Should the percentile intervals be filled (default) or should lines be drawn (fill = FALSE).
lwd
The line width to be used if fill = FALSE.
angle.scale
The pollutant scale is by default shown at a 45 degree angle. Sometimes the placement of the scale may interfere with an interesting feature. The user can therefore set angle.scale to another value (between 0 and 360 degrees) to miti
main
Title of plot.
auto.text
Either TRUE (default) or FALSE. If TRUE titles and axis labels will automatically try and format pollutant names and units properly e.g. by subscripting the 2 in NO2.
key.header, key.footer
Adds additional text/labels to the scale key. For example, passing options key.header = "header", key.footer = "footer" adds addition text above and below the scale key. These arguments are passed to drawOpenKey via
key.position
Location where the scale key is to plotted. Allowed arguments currently include "top", "right", "bottom" and "left".
key
Fine control of the scale key via drawOpenKey. See drawOpenKey for further details.
...
Other graphical parameters passed onto lattice:xyplot and cutData. For example, in the case of cutData the option hemisphere = "southern".

Value

  • As well as generating the plot itself, 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.

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.

See Also

See Also as windRose, pollutionRose, polarFreq, polarPlot

Examples

Run this code
# 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