axis {graphics} | R Documentation |
Adds an axis to the current plot, allowing the specification of the side, position, labels, and other options.
axis(side, at = NULL, labels = TRUE, tick = TRUE, line = NA, pos = NA, outer = FALSE, font = NA, lty = "solid", lwd = 1, col = NULL, hadj = NA, padj = NA, ...)
side |
an integer specifying which side of the plot the axis is to be drawn on. The axis is placed as follows: 1=below, 2=left, 3=above and 4=right. |
at |
the points at which tick-marks are to be drawn. Non-finite
(infinite, NaN or NA ) values are omitted. By default,
when NULL , tickmark locations are computed, see Details below. |
labels |
this can either be a logical value specifying whether
(numerical) annotations are to be made at the tickmarks, or a
character or expression vector of labels to be placed at the
tickpoints. If this is specified as a character or expression
vector, at should be supplied and they should be the same
length. |
tick |
a logical value specifying whether tickmarks and an axis line should be drawn |
line |
the number of lines into the margin which the axis will
be drawn. If not NA this overrides the value of the
graphical parameter mgp[3] . The relative placing of
tickmarks and tick labels is unchanged. |
pos |
the coordinate at which the axis line is to be drawn:
if not NA this overrides the values of both line and
mgp[3] . |
outer |
a logical value indicating whether the axis should be drawn in the outer plot margin, rather than the standard plot margin. |
font |
font for text. Defaults to par("font") . |
lty, lwd |
line type, width for the axis line and the tick marks. |
col |
color for the axis line and the tick marks. Here
NULL means to use par("fg") , possibly specified inline. |
hadj |
adjustment (see par("adj") ) for all labels
parallel (‘horizontal’) to the reading direction. If
this is not a finite value, the default is used (centring for
strings parallel to the axis, justification of the end nearest the
axis otherwise). |
padj |
adjustment for each tick label perpendicular to the
reading direction. For labels parallel to the axes, padj=0
means right or top alignment, and padj=1 means left or bottom
alignment. This can be a vector given a value for each string, and
will be recycled as necessary.
If padj is not a finite value (the default), the value of
par("las") determines the adjustment. For strings plotted
perpendicular to the axis the default is to centre the string. |
... |
other graphical parameters may also be passed as
arguments to this function, particularly, cex.axis ,
col.axis and font.axis for axis annotation, mgp
and xaxp or yaxp for positioning, tck or
tcl for tick mark length and direction, las for
vertical/horizontal label orientation, or fg instead of
col , see par on these.
Parameters xaxt (sides 1 and 3) and yaxt (sides 2 and
4) control if the axis is plotted at all.
Note that xpd is not accepted as clipping is always to the
device region, and that lab will partial match to argument
labels unless the latter is also supplied. (Since the
default axes has already been set up by plot.window ,
lab will not be acted on by axis .) |
The axis line is drawn from the lowest to the highest value of
at
, but will be clipped at the plot region. Only ticks which
are drawn from points within the plot region (up to a tolerance for
rounding error) are plotted, but the ticks and their labels may well
extend outside the plot region.
When at = NULL
, pretty tick mark locations are computed internally
(the same way axTicks(side)
would) from
par("xaxp")
or "yaxp"
and
par("xlog")
(or "ylog"
). Note that these
locations may change if an on-screen plot is resized (for example, if
the plot
argument asp
(see plot.window
) is set.)
If labels
is not specified, the numeric values supplied or
calculated for at
are converted to character strings as if they
were a numeric vector printed by print.default(digits=7)
.
The code tries hard not to draw overlapping tick labels, and so will omit labels where they would abut or overlap previously drawn labels. This can result in, for example, every other tick being labelled. (The ticks are drawn left to right or bottom to top, and space at least the size of an ‘m’ is left between labels.)
Several of the graphics parameters affect the way axes are drawn. The
vertical (for sides 1 and 3) positions of the axis and the tick labels
are controlled by mgp
, the size and direction of the ticks is
controlled by tck
and tcl
and the appearance of the tick
labels by cex.axis
, col.axis
and font.axis
with
orientation controlled by las
(but not srt
, unlike S
which uses srt
if at
is supplied and las
if it is
not). Note that adj
is not supported.
See par
for details.
The numeric locations on the axis scale at which tick marks were drawn
when the plot was first drawn (see Details).
This function is usually invoked for its side effect, which is to add
an axis to an already existing plot.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Axis
for a generic interface.
axTicks
returns the axis tick locations
corresponding to at=NULL
; pretty
is more flexible
for computing pretty tick coordinates and does not depend on
(nor adapt to) the coordinate system in use.
Several graphics parameters affecting the appearance are documented
in par
.
plot(1:4, rnorm(4), axes = FALSE) axis(1, 1:4, LETTERS[1:4]) axis(2) box() #- to make it look "as usual" plot(1:7, rnorm(7), main = "axis() examples", type = "s", xaxt = "n", frame = FALSE, col = "red") axis(1, 1:7, LETTERS[1:7], col.axis = "blue") # unusual options: axis(4, col = "violet", col.axis="dark violet", lwd = 2) axis(3, col = "gold", lty = 2, lwd = 0.5) # one way to have a custom x axis plot(1:10, xaxt = "n") axis(1, xaxp=c(2, 9, 7))