| % File src/library/graphics/man/par.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2022 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{par} |
| \alias{par} |
| \alias{.Pars} |
| \concept{adj} |
| \concept{ann} |
| \concept{ask} |
| \concept{bg} |
| \concept{bty} |
| \concept{cex.axis} |
| \concept{cex.lab} |
| \concept{cex.main} |
| \concept{cex.sub} |
| \concept{cex} |
| \concept{cin} |
| \concept{col.axis} |
| \concept{col.lab} |
| \concept{col.main} |
| \concept{col.sub} |
| \concept{col} |
| \concept{cra} |
| \concept{crt} |
| \concept{csi} |
| \concept{cxy} |
| \concept{din} |
| \concept{err} |
| \concept{family} |
| \concept{fg} |
| \concept{fig} |
| \concept{fin} |
| \concept{font.axis} |
| \concept{font.lab} |
| \concept{font.main} |
| \concept{font.sub} |
| \concept{font} |
| \concept{lab} |
| \concept{las} |
| \concept{lend} |
| \concept{lheight} |
| \concept{ljoin} |
| \concept{lmitre} |
| \concept{lty} |
| \concept{lwd} |
| \concept{mai} |
| \concept{mar} |
| \concept{mex} |
| \concept{mfcol} |
| \concept{mfg} |
| \concept{mfrow} |
| \concept{mgp} |
| \concept{mkh} |
| \concept{new} |
| \concept{oma} |
| \concept{omd} |
| \concept{omi} |
| \concept{page} |
| \concept{pch} |
| \concept{pin} |
| \concept{plt} |
| \concept{ps} |
| \concept{pty} |
| \concept{smo} |
| \concept{srt} |
| \concept{tck} |
| \concept{tcl} |
| \concept{usr} |
| \concept{xaxp} |
| \concept{xaxs} |
| \concept{xaxt} |
| \concept{xlog} |
| \concept{xpd} |
| \concept{yaxp} |
| \concept{yaxs} |
| \concept{yaxt} |
| \concept{ylog} |
| \concept{color} |
| \concept{colour} |
| \alias{graphical parameter} |
| \alias{graphical parameters} |
| |
| \title{Set or Query Graphical Parameters} |
| |
| %% The 'real documentation' is the code in ../../../main/par.c |
| %% AND (defined AND commented) in ../../../include/Graphics.h |
| %% Default initialization by GInit() in ../../../main/graphics.c |
| |
| \description{ |
| \code{par} can be used to set or query graphical parameters. |
| Parameters can be set by specifying them as arguments to \code{par} in |
| \code{tag = value} form, or by passing them as a list of tagged |
| values. |
| } |
| \usage{ |
| par(\dots, no.readonly = FALSE) |
| |
| \special{<highlevel plot> (...., <tag> = <value>)} |
| } |
| |
| \arguments{ |
| \item{\dots}{arguments in \code{tag = value} form, a single list of tagged |
| values, or character vectors of parameter names. Supported parameters are |
| described in the \sQuote{Graphical Parameters} section.} |
| \item{no.readonly}{logical; if \code{TRUE} and there are no other |
| arguments, only parameters are returned which can be set by a |
| subsequent \code{par()} call \emph{on the same device}.} |
| } |
| |
| \details{ |
| Each device has its own set of graphical parameters. If the current |
| device is the null device, \code{par} will open a new device before |
| querying/setting parameters. (What device is controlled by |
| \code{\link{options}("device")}.) |
| |
| Parameters are queried by giving one or more character vectors of |
| parameter names to \code{par}. |
| |
| \code{par()} (no arguments) or \code{par(no.readonly = TRUE)} is used to |
| get \emph{all} the graphical parameters (as a named list). Their |
| names are currently taken from the unexported variable |
| \code{graphics:::.Pars}. |
| |
| \emph{\bold{R.O.}} indicates \emph{\bold{read-only arguments}}: These |
| may only be used in queries and cannot be set. (\code{"cin"}, |
| \code{"cra"}, \code{"csi"}, \code{"cxy"}, \code{"din"} and |
| \code{"page"} are always read-only.) |
| |
| Several parameters can only be set by a call to \code{par()}: |
| \itemize{ |
| \item \code{"ask"}, |
| \item \code{"fig"}, \code{"fin"}, |
| \item \code{"lheight"}, |
| \item \code{"mai"}, \code{"mar"}, \code{"mex"}, |
| \code{"mfcol"}, \code{"mfrow"}, \code{"mfg"}, |
| \item \code{"new"}, |
| \item \code{"oma"}, \code{"omd"}, \code{"omi"}, |
| \item \code{"pin"}, \code{"plt"}, \code{"ps"}, \code{"pty"}, |
| \item \code{"usr"}, |
| \item \code{"xlog"}, \code{"ylog"}, |
| \item \code{"ylbias"} |
| } |
| The remaining parameters can also be set as arguments (often via |
| \code{\dots}) to high-level plot functions such as |
| \code{\link{plot.default}}, \code{\link{plot.window}}, |
| \code{\link{points}}, \code{\link{lines}}, \code{\link{abline}}, |
| \code{\link{axis}}, \code{\link{title}}, \code{\link{text}}, |
| \code{\link{mtext}}, \code{\link{segments}}, \code{\link{symbols}}, |
| \code{\link{arrows}}, \code{\link{polygon}}, \code{\link{rect}}, |
| \code{\link{box}}, \code{\link{contour}}, \code{\link{filled.contour}} |
| and \code{\link{image}}. Such settings will be active during the |
| execution of the function, only. However, see the comments on |
| \code{bg}, \code{cex}, \code{col}, \code{lty}, \code{lwd} and |
| \code{pch} which may be taken as \emph{arguments} to certain plot |
| functions rather than as graphical parameters. |
| |
| The meaning of \sQuote{character size} is not well-defined: this is |
| set up for the device taking \code{pointsize} into account but often |
| not the actual font family in use. Internally the corresponding pars |
| (\code{cra}, \code{cin}, \code{cxy} and \code{csi}) are used only to |
| set the inter-line spacing used to convert \code{mar} and \code{oma} |
| to physical margins. (The same inter-line spacing multiplied by |
| \code{lheight} is used for multi-line strings in \code{text} and |
| \code{strheight}.) |
| |
| Note that graphical parameters are suggestions: plotting functions and |
| devices need not make use of them (and this is particularly true of |
| non-default methods for e.g.\sspace{}\code{plot}). |
| } |
| |
| \value{ |
| When parameters are set, their previous values are returned in an |
| invisible named list. Such a list can be passed as an argument to |
| \code{par} to restore the parameter values. Use \code{par(no.readonly |
| = TRUE)} for the full list of parameters that can be restored. |
| However, restoring all of these is not wise: see the \sQuote{Note} |
| section. |
| |
| When just one parameter is queried, the value of that parameter |
| is returned as (atomic) vector. When two or more parameters are |
| queried, their values are returned in a list, with the list names |
| giving the parameters. |
| |
| Note the inconsistency: setting one parameter returns a list, but |
| querying one parameter returns a vector. |
| } |
| |
| \section{Graphical Parameters}{ |
| \describe{ |
| \item{\code{adj}}{The value of \code{adj} determines the way in |
| which text strings are justified in \code{\link{text}}, |
| \code{\link{mtext}} and \code{\link{title}}. A value of \code{0} produces |
| left-justified text, \code{0.5} (the default) centered text and \code{1} |
| right-justified text. (Any value in \eqn{[0, 1]} is allowed, and |
| on most devices values outside that interval will also work.) |
| |
| Note that the \code{adj} \emph{argument} of \code{\link{text}} also |
| allows \code{adj = c(x, y)} for different adjustment in x- and y- |
| directions. Note that whereas for \code{text} it refers to |
| positioning of text about a point, for \code{mtext} and |
| \code{title} it controls placement within the plot or device region.} |
| \item{\code{ann}}{If set to \code{FALSE}, high-level plotting |
| functions calling \code{\link{plot.default}} do not annotate the |
| plots they produce with axis titles and overall titles. The |
| default is to do annotation.} |
| \item{\code{ask}}{logical. If \code{TRUE} (and the \R session is |
| interactive) the user is asked for input, before a new figure is |
| drawn. As this applies to the device, it also affects output by |
| packages \pkg{grid} and \CRANpkg{lattice}. It can be set even on |
| non-screen devices but may have no effect there. |
| |
| This not really a graphics parameter, and its use is deprecated in |
| favour of \code{\link{devAskNewPage}}. |
| } |
| \item{\code{bg}}{The color to be used for the background of the |
| device region. When called from \code{par()} it also sets |
| \code{new = FALSE}. See section \sQuote{Color Specification} for |
| suitable values. For many devices the initial value is set from |
| the \code{bg} argument of the device, and for the rest it is |
| normally \code{"white"}. |
| |
| Note that some graphics functions such as |
| \code{\link{plot.default}} and \code{\link{points}} have an |
| \emph{argument} of this name with a different meaning.} |
| \item{\code{bty}}{A character string which determined the type of |
| \code{\link{box}} which is drawn about plots. If \code{bty} is |
| one of \code{"o"} (the default), \code{"l"}, \code{"7"}, |
| \code{"c"}, \code{"u"}, or \code{"]"} the resulting box resembles |
| the corresponding upper case letter. A value of \code{"n"} |
| suppresses the box.} |
| \item{\code{cex}}{A numerical value giving the amount by which |
| plotting text and symbols should be magnified relative to the |
| default. This starts as \code{1} when a device is opened, and is |
| reset when the layout is changed, e.g.\sspace{}by setting \code{mfrow}. |
| |
| Note that some graphics functions such as |
| \code{\link{plot.default}} have an \emph{argument} of this name |
| which \emph{multiplies} this graphical parameter, and some |
| functions such as \code{\link{points}} and \code{\link{text}} |
| accept a vector of values which are recycled. |
| } |
| \item{\code{cex.axis}}{The magnification to be used for axis |
| annotation relative to the current setting of \code{cex}.} |
| \item{\code{cex.lab}}{The magnification to be used for x and y |
| labels relative to the current setting of \code{cex}.} |
| \item{\code{cex.main}}{The magnification to be used for main titles |
| relative to the current setting of \code{cex}.} |
| \item{\code{cex.sub}}{The magnification to be used for sub-titles |
| relative to the current setting of \code{cex}.} |
| \item{\code{cin}}{\emph{\bold{R.O.}}; character size |
| \code{(width, height)} in inches. These are the same measurements |
| as \code{cra}, expressed in different units.} |
| \item{\code{col}}{A specification for the default plotting color. See |
| section \sQuote{Color Specification}. |
| |
| Some functions such as \code{\link{lines}} and \code{\link{text}} |
| accept a vector of values which are recycled and may be |
| interpreted slightly differently. |
| } |
| \item{\code{col.axis}}{The color to be used for axis |
| annotation. Defaults to \code{"black"}.} |
| \item{\code{col.lab}}{The color to be used for x and y labels. |
| Defaults to \code{"black"}.} |
| \item{\code{col.main}}{The color to be used for plot main titles. |
| Defaults to \code{"black"}.} |
| \item{\code{col.sub}}{The color to be used for plot sub-titles. |
| Defaults to \code{"black"}.} |
| \item{\code{cra}}{\emph{\bold{R.O.}}; size of default character |
| \code{(width, height)} in \sQuote{rasters} (pixels). Some devices |
| have no concept of pixels and so assume an arbitrary pixel size, |
| usually 1/72 inch. These are the same measurements |
| as \code{cin}, expressed in different units.} |
| \item{\code{crt}}{A numerical value specifying (in degrees) how |
| single characters should be rotated. It is unwise to expect |
| values other than multiples of 90 to work. Compare with |
| \code{srt} which does string rotation.} |
| \item{\code{csi}}{\emph{\bold{R.O.}}; height of (default-sized) |
| characters in inches. The same as \code{par("cin")[2]}.} |
| \item{\code{cxy}}{\emph{\bold{R.O.}}; size of default character |
| \code{(width, height)} in user coordinate units. |
| \code{par("cxy")} is \code{par("cin")/par("pin")} scaled to user |
| coordinates. |
| Note that \code{c(\link{strwidth}(ch), \link{strheight}(ch))} for |
| a given string \code{ch} is usually much more precise.} |
| \item{\code{din}}{\emph{\bold{R.O.}}; the device dimensions, |
| \code{(width, height)}, in inches. See also |
| \code{\link{dev.size}}, which is updated immediately when an |
| on-screen device windows is re-sized.} |
| \item{\code{err}}{(\emph{Unimplemented}; \R is silent when points |
| outside the plot region are \emph{not} plotted.) |
| The degree of error reporting desired.} |
| \item{\code{family}}{The name of a font family for drawing text. |
| The maximum allowed length is 200 bytes. |
| This name gets mapped by each graphics device to a device-specific |
| font description. The default value is \code{""} which means that |
| the default device fonts will be used (and what those are should |
| be listed on the help page for the device). Standard values are |
| \code{"serif"}, \code{"sans"} and \code{"mono"}, and the |
| \link{Hershey} font families are also available. (Devices may |
| define others, and some devices will ignore this setting |
| completely. Names starting with \code{"Hershey"} are treated |
| specially and should only be used for the built-in Hershey font |
| families.) This can be specified inline for \code{\link{text}}.} |
| \item{\code{fg}}{The color to be used for the foreground of plots. |
| This is the default color used for things like axes and boxes |
| around plots. When called from \code{par()} this also sets |
| parameter \code{col} to the same value. See section \sQuote{Color |
| Specification}. A few devices have an argument to set the |
| initial value, which is otherwise \code{"black"}.} |
| \item{\code{fig}}{A numerical vector of the form \code{c(x1, x2, y1, |
| y2)} which gives the (NDC) coordinates of the figure region in |
| the display region of the device. If you set this, unlike S, you |
| start a new plot, so to add to an existing plot use |
| \code{new = TRUE} as well.} |
| \item{\code{fin}}{The figure region dimensions, |
| \code{(width, height)}, in inches. If you set this, unlike S, you |
| start a new plot.} |
| \item{\code{font}}{An integer which specifies which font to use for |
| text. If possible, device drivers arrange so that 1 corresponds |
| to plain text (the default), 2 to bold face, 3 to italic and 4 to |
| bold italic. Also, font 5 is expected to be the symbol font, in |
| Adobe symbol encoding. On some devices font families can be |
| selected by \code{family} to choose different sets of 5 fonts.} |
| \item{\code{font.axis}}{The font to be used for axis annotation.} |
| \item{\code{font.lab}}{The font to be used for x and y labels.} |
| \item{\code{font.main}}{The font to be used for plot main titles.} |
| \item{\code{font.sub}}{The font to be used for plot sub-titles.} |
| \item{\code{lab}}{A numerical vector of the form \code{c(x, y, len)} |
| which modifies the default way that axes are annotated. The values of |
| \code{x} and \code{y} give the (approximate) number of tickmarks |
| on the x and y axes and \code{len} specifies the label length. The |
| default is \code{c(5, 5, 7)}. % values accessed by CreateAtVector() |
| \code{len} \emph{is unimplemented} in \R.} |
| \item{\code{las}}{numeric in \{0,1,2,3\}; the style of axis labels. |
| \describe{ |
| \item{0:}{always parallel to the axis [\emph{default}],} |
| \item{1:}{always horizontal,} |
| \item{2:}{always perpendicular to the axis,} |
| \item{3:}{always vertical.} |
| } |
| Also supported by \code{\link{mtext}}. Note that |
| string/character rotation \emph{via} argument \code{srt} to \code{par} |
| does \emph{not} affect the axis labels. |
| } |
| \item{\code{lend}}{The line end style. This can be specified as an |
| integer or string: |
| \describe{ |
| \item{\code{0}}{and \code{"round"} mean rounded line caps |
| [\emph{default}];} |
| \item{\code{1}}{and \code{"butt"} mean butt line caps;} |
| \item{\code{2}}{and \code{"square"} mean square line caps.} |
| } |
| } |
| \item{\code{lheight}}{The line height multiplier. |
| The height of a line of text (used to vertically space |
| multi-line text) is found by multiplying the character height |
| both by the current character expansion and by the |
| line height multiplier. Default value is 1. Used in |
| \code{\link{text}} and \code{\link{strheight}}.} |
| \item{\code{ljoin}}{The line join style. |
| This can be specified as an integer or string: |
| \describe{ |
| \item{\code{0}}{and \code{"round"} mean rounded line joins |
| [\emph{default}];} |
| \item{\code{1}}{and \code{"mitre"} mean mitred line joins;} |
| \item{\code{2}}{and \code{"bevel"} mean bevelled line joins.} |
| } |
| } |
| \item{\code{lmitre}}{The line mitre limit. This controls when |
| mitred line joins are automatically converted into bevelled line |
| joins. The value must be larger than 1 and the default is 10. |
| Not all devices will honour this setting.} |
| \item{\code{lty}}{The line type. |
| Line types can either be specified as an integer (0=blank, 1=solid |
| (default), 2=dashed, 3=dotted, 4=dotdash, 5=longdash, 6=twodash) |
| or as one of the character strings \code{"blank"}, \code{"solid"}, |
| \code{"dashed"}, \code{"dotted"}, \code{"dotdash"}, |
| \code{"longdash"}, or \code{"twodash"}, where \code{"blank"} uses |
| \sQuote{invisible lines} (i.e., does not draw them). |
| |
| Alternatively, a string of up to 8 characters (from \code{c(1:9, |
| "A":"F")}) may be given, giving the length of line segments |
| which are alternatively drawn and skipped. See section |
| \sQuote{Line Type Specification}. |
| |
| Functions such as \code{\link{lines}} and \code{\link{segments}} |
| accept a vector of values which are recycled. |
| } |
| \item{\code{lwd}}{The line width, a \emph{positive} number, |
| defaulting to \code{1}. The interpretation is device-specific, |
| and some devices do not implement line widths less than one. |
| (See the help on the device for details of the interpretation.) |
| |
| Functions such as \code{\link{lines}} and \code{\link{segments}} |
| accept a vector of values which are recycled: in such uses lines |
| corresponding to values \code{NA} or \code{NaN} are omitted. The |
| interpretation of \code{0} is device-specific. |
| } |
| \item{\code{mai}}{A numerical vector of the form \code{c(bottom, |
| left, top, right)} which gives the margin size specified in |
| inches.\cr |
| \if{html}{\figure{mai.png}{options: width="35\%" alt="Figure: mai.png"}} |
| \if{latex}{\figure{mai.pdf}{options: width=7cm}} |
| } |
| \item{\code{mar}}{A numerical vector of the form \code{c(bottom, |
| left, top, right)} which gives the number of lines of margin to be |
| specified on the four sides of the plot. |
| The default is \code{c(5, 4, 4, 2) + 0.1}.} |
| \item{\code{mex}}{ |
| \code{mex} is a character size expansion factor which is used to |
| describe coordinates in the margins of plots. Note that this does |
| not change the font size, rather specifies the size of font (as a |
| multiple of \code{csi}) used to convert between \code{mar} and |
| \code{mai}, and between \code{oma} and \code{omi}. |
| |
| This starts as \code{1} when the device is opened, and is reset |
| when the layout is changed (alongside resetting \code{cex}). |
| } |
| \item{\code{mfcol, mfrow}}{A vector of the form \code{c(nr, nc)}. |
| Subsequent figures will be drawn in an \code{nr}-by-\code{nc} |
| array on the device by \emph{columns} (\code{mfcol}), or |
| \emph{rows} (\code{mfrow}), respectively. |
| |
| In a layout with exactly two rows and columns the base value of |
| \code{"cex"} is reduced by a factor of 0.83: if there are three or |
| more of either rows or columns, the reduction factor is 0.66. |
| |
| Setting a layout resets the base value of \code{cex} and that of |
| \code{mex} to \code{1}. |
| |
| If either of these is queried it will give the current layout, so |
| querying cannot tell you the order in which the array will be filled. |
| |
| Consider the alternatives, \code{\link{layout}} and |
| \code{\link{split.screen}}. |
| } |
| \item{\code{mfg}}{A numerical vector of the form \code{c(i, j)} |
| where \code{i} and \code{j} indicate which figure in an array of |
| figures is to be drawn next (if setting) or is being drawn (if |
| enquiring). The array must already have been set by \code{mfcol} |
| or \code{mfrow}. |
| |
| For compatibility with S, the form \code{c(i, j, nr, nc)} is also |
| accepted, when \code{nr} and \code{nc} should be the current |
| number of rows and number of columns. Mismatches will be ignored, |
| with a warning.} |
| \item{\code{mgp}}{The margin line (in \code{mex} units) for the axis |
| title, axis labels and axis line. Note that \code{mgp[1]} affects |
| \code{\link{title}} whereas \code{mgp[2:3]} affect \code{\link{axis}}. |
| The default is \code{c(3, 1, 0)}.} |
| \item{\code{mkh}}{The height in inches of symbols to be drawn when |
| the value of \code{pch} is an integer. \emph{Completely ignored in \R}. |
| } |
| \item{\code{new}}{logical, defaulting to \code{FALSE}. If set to |
| \code{TRUE}, the next high-level plotting command (actually |
| \code{\link{plot.new}}) should \emph{not clean} the frame before |
| drawing \emph{as if it were on a \bold{\emph{new}} device}. It is |
| an error (ignored with a warning) to try to use \code{new = TRUE} |
| on a device that does not currently contain a high-level plot.} |
| \item{\code{oma}}{A vector of the form \code{c(bottom, left, top, |
| right)} giving the size of the outer margins in lines of text.\cr |
| \if{html}{\figure{oma.png}{options: width="25\%" alt="Figure: oma.png"}} |
| \if{latex}{\figure{oma.pdf}{options: width=6cm}} |
| } |
| \item{\code{omd}}{A vector of the form \code{c(x1, x2, y1, y2)} |
| giving the region \emph{inside} outer margins in NDC (= |
| normalized device coordinates), i.e., as a fraction (in \eqn{[0, 1]}) |
| of the device region.} |
| \item{\code{omi}}{A vector of the form \code{c(bottom, left, top, |
| right)} giving the size of the outer margins in inches.} |
| \item{\code{page}}{\emph{\bold{R.O.}}; A boolean value indicating |
| whether the next call to \code{\link{plot.new}} is going |
| to start a new page. This value may be \code{FALSE} if there |
| are multiple figures on the page.} |
| \item{\code{pch}}{Either an integer specifying a symbol or a single |
| character to be used as the default in plotting points. See |
| \code{\link{points}} for possible values and their interpretation. |
| Note that only integers and single-character strings can |
| be set as a graphics parameter (and not \code{NA} nor \code{NULL}). |
| |
| Some functions such as \code{\link{points}} accept a vector of values |
| which are recycled. |
| } |
| \item{\code{pin}}{The current plot dimensions, \code{(width, height)}, |
| in inches.} |
| \item{\code{plt}}{A vector of the form \code{c(x1, x2, y1, y2)} |
| giving the coordinates of the plot region as fractions of the |
| current figure region.} |
| \item{\code{ps}}{integer; the point size of text (but not symbols). Unlike |
| the \code{pointsize} argument of most devices, this does not change |
| the relationship between \code{mar} and \code{mai} (nor \code{oma} |
| and \code{omi}). |
| |
| What is meant by \sQuote{point size} is device-specific, but most |
| devices mean a multiple of 1bp, that is 1/72 of an inch. |
| } |
| \item{\code{pty}}{A character specifying the type of plot region to |
| be used; \code{"s"} generates a square plotting region and |
| \code{"m"} generates the maximal plotting region.} |
| \item{\code{smo}}{(\emph{Unimplemented}) a value which indicates how |
| smooth circles and circular arcs should be.} |
| \item{\code{srt}}{The string rotation in degrees. See the comment |
| about \code{crt}. Only supported by \code{\link{text}}. |
| %% NOT true for R (but for S): Causes \code{srt} to be set to the |
| %% same value. ?? Is `crt' meant here ?? |
| } |
| \item{\code{tck}}{The length of tick marks as a fraction of the |
| smaller of the width or height of the plotting region. |
| If \code{tck >= 0.5} it is interpreted as a fraction of the |
| relevant side, so if \code{tck = 1} grid lines are drawn. The |
| default setting (\code{tck = NA}) is to use \code{tcl = -0.5}.} |
| \item{\code{tcl}}{The length of tick marks as a fraction of the |
| height of a line of text. The default value is \code{-0.5}; |
| setting \code{tcl = NA} sets \code{tck = -0.01} which is S' default.} |
| \item{\code{usr}}{A vector of the form \code{c(x1, x2, y1, y2)} |
| giving the extremes of the user coordinates of the plotting |
| region. When a logarithmic scale is in use (i.e., |
| \code{par("xlog")} is true, see below), then the x-limits will be |
| \code{10 ^ par("usr")[1:2]}. Similarly for the y-axis. |
| } |
| \item{\code{xaxp}}{A vector of the form \code{c(x1, x2, n)} giving |
| the coordinates of the extreme tick marks and the number of |
| intervals between tick-marks when \code{par("xlog")} is false. |
| Otherwise, when \emph{log} coordinates are active, the three |
| values have a different meaning: For a small range, \code{n} is |
| \emph{negative}, and the ticks are as in the linear case, |
| otherwise, \code{n} is in \code{1:3}, specifying a case number, |
| and \code{x1} and \code{x2} are the lowest and highest power of 10 |
| inside the user coordinates, \code{10 ^ par("usr")[1:2]}. (The |
| \code{"usr"} coordinates are log10-transformed here!) |
| |
| \describe{ |
| \item{n = 1}{will produce tick marks at \eqn{10^j} for integer \eqn{j},} |
| \item{n = 2}{gives marks \eqn{k 10^j} with |
| \eqn{k \in \{1, 5\}}{k in {1,5}},} |
| \item{n = 3}{gives marks \eqn{k 10^j} with |
| \eqn{k \in \{1, 2, 5\}}{k in {1,2,5}}.} |
| } |
| See \code{\link{axTicks}()} for a pure \R implementation of this. |
| |
| This parameter is reset when a user coordinate system is set up, |
| for example by starting a new page or by calling |
| \code{\link{plot.window}} or setting \code{par("usr")}: \code{n} |
| is taken from \code{par("lab")}. It affects the default behaviour |
| of subsequent calls to \code{\link{axis}} for sides 1 or 3. |
| |
| It is only relevant to default numeric axis systems, and not for |
| example to dates. |
| } |
| \item{\code{xaxs}}{The style of axis interval calculation to be used |
| for the x-axis. Possible values are \code{"r"}, \code{"i"}, |
| \code{"e"}, \code{"s"}, \code{"d"}. The styles are generally |
| controlled by the range of data or \code{xlim}, if given.\cr |
| Style \code{"r"} (regular) first extends the data range by 4 |
| percent at each end and then finds an axis with pretty labels |
| that fits within the extended range.\cr |
| Style \code{"i"} (internal) just finds an axis with pretty labels |
| that fits within the original data range.\cr |
| Style \code{"s"} (standard) finds an axis with pretty labels |
| within which the original data range fits.\cr |
| Style \code{"e"} (extended) is like style \code{"s"}, except that |
| it is also ensures that there is room for plotting symbols within |
| the bounding box.\cr |
| Style \code{"d"} (direct) specifies that the current axis should |
| be used on subsequent plots.\cr |
| (\emph{Only \code{"r"} and \code{"i"} styles have been |
| implemented in \R.})} |
| \item{\code{xaxt}}{A character which specifies the x axis type. |
| Specifying \code{"n"} suppresses plotting of the axis. The |
| standard value is \code{"s"}: for compatibility with S values |
| \code{"l"} and \code{"t"} are accepted but are equivalent to |
| \code{"s"}: any value other than \code{"n"} implies plotting.} |
| \item{\code{xlog}}{A logical value (see \code{log} in |
| \code{\link{plot.default}}). If \code{TRUE}, a logarithmic scale |
| is in use (e.g., after \code{plot(*, log = "x")}). |
| For a new device, it defaults to \code{FALSE}, i.e., linear scale.} |
| \item{\code{xpd}}{A logical value or \code{NA}. |
| If \code{FALSE}, all plotting is clipped to the plot region, if |
| \code{TRUE}, all plotting is clipped to the figure region, and if |
| \code{NA}, all plotting is clipped to the device region. See also |
| \code{\link{clip}}.} |
| \item{\code{yaxp}}{A vector of the form \code{c(y1, y2, n)} giving |
| the coordinates of the extreme tick marks and the number of |
| intervals between tick-marks unless for log coordinates, see |
| \code{xaxp} above.} |
| \item{\code{yaxs}}{The style of axis interval calculation to be used |
| for the y-axis. See \code{xaxs} above.} |
| \item{\code{yaxt}}{A character which specifies the y axis type. |
| Specifying \code{"n"} suppresses plotting.} |
| \item{\code{ylbias}}{A positive real value used in the positioning |
| of text in the margins by \code{\link{axis}} and |
| \code{\link{mtext}}. The default is in principle device-specific, |
| but currently \code{0.2} for all of \R's own devices. Set this to |
| \code{0.2} for compatibility with \R < 2.14.0 on \code{x11} and |
| \code{windows()} devices.} |
| \item{\code{ylog}}{A logical value; see \code{xlog} above.} |
| } |
| } |
| |
| \section{Color Specification}{ |
| Colors can be specified in several different ways. The simplest way is |
| with a character string giving the color name (e.g., \code{"red"}). A |
| list of the possible colors can be obtained with the function |
| \code{\link{colors}}. Alternatively, colors can be specified directly |
| in terms of their RGB components with a string of the form |
| \code{"#RRGGBB"} where each of the pairs \code{RR}, \code{GG}, |
| \code{BB} consist of two hexadecimal digits giving a value in the |
| range \code{00} to \code{FF}. Colors can also be specified by giving |
| an index into a small table of colors, the \code{\link{palette}}: |
| indices wrap round so with the default palette of size 8, \code{10} is |
| the same as \code{2}. This provides compatibility with S. Index |
| \code{0} corresponds to the background color. Note that the palette |
| (apart from \code{0} which is per-device) is a per-session setting. |
| |
| Negative integer colours are errors. |
| |
| Additionally, \code{"transparent"} is \emph{transparent}, useful for |
| filled areas (such as the background!), and just invisible for things |
| like lines or text. In most circumstances (integer) \code{NA} |
| is equivalent to \code{"transparent"} (but not for |
| \code{\link{text}} and \code{\link{mtext}}). |
| |
| Semi-transparent colors are available for use on devices that support |
| them. |
| |
| The functions \code{\link{rgb}}, \code{\link{hsv}}, \code{\link{hcl}}, |
| \code{\link{gray}} and \code{\link{rainbow}} provide additional ways |
| of generating colors. |
| } |
| |
| \section{Line Type Specification}{ |
| Line types can either be specified by giving an index into a small |
| built-in table of line types (1 = solid, 2 = dashed, etc, see |
| \code{lty} above) or directly as the lengths of on/off stretches of |
| line. This is done with a string of an even number (up to eight) |
| of characters, namely \emph{non-zero} |
| (hexadecimal) digits which give the lengths in consecutive positions |
| in the string. For example, the string \code{"33"} specifies three |
| units on followed by three off and \code{"3313"} specifies three units |
| on followed by three off followed by one on and finally three off. |
| The \sQuote{units} here are (on most devices) proportional to |
| \code{lwd}, and with \code{lwd = 1} are in pixels or points or 1/96 |
| inch. |
| |
| The five standard dash-dot line types (\code{lty = 2:6}) correspond to |
| \code{c("44", "13", "1343", "73", "2262")}. |
| |
| Note that \code{NA} is not a valid value for \code{lty}. |
| } |
| |
| \note{ |
| The effect of restoring all the (settable) graphics parameters as |
| in the examples is hard to predict if the device has been resized. |
| Several of them are attempting to set the same things in different |
| ways, and those last in the alphabet will win. In particular, the |
| settings of \code{mai}, \code{mar}, \code{pin}, \code{plt} and |
| \code{pty} interact, as do the outer margin settings, the figure |
| layout and figure region size. |
| } |
| |
| \references{ |
| Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) |
| \emph{The New S Language}. |
| Wadsworth & Brooks/Cole. |
| |
| Murrell, P. (2005) \emph{R Graphics}. Chapman & Hall/CRC Press. |
| } |
| \seealso{ |
| \code{\link{plot.default}} for some high-level plotting parameters; |
| \code{\link{colors}}; \code{\link{clip}}; |
| \code{\link{options}} for other setup parameters; |
| graphic devices \code{\link{x11}}, \code{\link{postscript}} and |
| setting up device regions by \code{\link{layout}} and |
| \code{\link{split.screen}}. |
| } |
| |
| \examples{ |
| op <- par(mfrow = c(2, 2), # 2 x 2 pictures on one plot |
| pty = "s") # square plotting region, |
| # independent of device size |
| |
| ## At end of plotting, reset to previous settings: |
| par(op) |
| |
| ## Alternatively, |
| op <- par(no.readonly = TRUE) # the whole list of settable par's. |
| ## do lots of plotting and par(.) calls, then reset: |
| par(op) |
| ## Note this is not in general good practice |
| |
| par("ylog") # FALSE |
| plot(1 : 12, log = "y") |
| par("ylog") # TRUE |
| |
| plot(1:2, xaxs = "i") # 'inner axis' w/o extra space |
| par(c("usr", "xaxp")) |
| |
| ( nr.prof <- |
| c(prof.pilots = 16, lawyers = 11, farmers = 10, salesmen = 9, physicians = 9, |
| mechanics = 6, policemen = 6, managers = 6, engineers = 5, teachers = 4, |
| housewives = 3, students = 3, armed.forces = 1)) |
| par(las = 3) |
| barplot(rbind(nr.prof)) # R 0.63.2: shows alignment problem |
| par(las = 0) # reset to default |
| |
| require(grDevices) # for gray |
| ## 'fg' use: |
| plot(1:12, type = "b", main = "'fg' : axes, ticks and box in gray", |
| fg = gray(0.7), bty = "7" , sub = R.version.string) |
| |
| ex <- function() { |
| old.par <- par(no.readonly = TRUE) # all par settings which |
| # could be changed. |
| on.exit(par(old.par)) |
| ## ... |
| ## ... do lots of par() settings and plots |
| ## ... |
| invisible() #-- now, par(old.par) will be executed |
| } |
| ex() |
| |
| ## Line types |
| showLty <- function(ltys, xoff = 0, ...) { |
| stopifnot((n <- length(ltys)) >= 1) |
| op <- par(mar = rep(.5,4)); on.exit(par(op)) |
| plot(0:1, 0:1, type = "n", axes = FALSE, ann = FALSE) |
| y <- (n:1)/(n+1) |
| clty <- as.character(ltys) |
| mytext <- function(x, y, txt) |
| text(x, y, txt, adj = c(0, -.3), cex = 0.8, ...) |
| abline(h = y, lty = ltys, ...); mytext(xoff, y, clty) |
| y <- y - 1/(3*(n+1)) |
| abline(h = y, lty = ltys, lwd = 2, ...) |
| mytext(1/8+xoff, y, paste(clty," lwd = 2")) |
| } |
| showLty(c("solid", "dashed", "dotted", "dotdash", "longdash", "twodash")) |
| par(new = TRUE) # the same: |
| showLty(c("solid", "44", "13", "1343", "73", "2262"), xoff = .2, col = 2) |
| showLty(c("11", "22", "33", "44", "12", "13", "14", "21", "31")) |
| } |
| \keyword{iplot} |
| \keyword{dplot} |
| \keyword{environment} |