adjustAxisLabelMargins {jamba} | R Documentation |
Adjust axis label margins
Description
Adjust axis label margins to accommodate axis labels
Usage
adjustAxisLabelMargins(
x,
margin = 1,
maxFig = 1/2,
cex = graphics::par("cex"),
cex.axis = graphics::par("cex.axis"),
prefix = "-- -- ",
...
)
Arguments
x |
|
margin |
|
maxFig |
|
cex |
|
cex.axis |
|
prefix |
|
... |
additional parameters are ignored. |
Details
This function takes a vector of axis labels, and the margin where they
will be used, and adjusts the relevant axis margin to accomodate the
label size, up to a maximum fraction of the figure size as defined by
maxFig
.
Labels are assumed to be perpendicular to the axis, for example
argument las=2
when using graphics::text()
.
Note this function does not render labels in the figure, and therefore does not revert axis margins to their original size. That process should be performed separately.
Value
list
named "mai" suitable for use in graphics::par()
to adjust margin size using in inches.
See Also
Other jam plot functions:
coordPresets()
,
decideMfrow()
,
drawLabels()
,
getPlotAspect()
,
groupedAxis()
,
imageByColors()
,
imageDefault()
,
minorLogTicksAxis()
,
nullPlot()
,
plotPolygonDensity()
,
plotRidges()
,
plotSmoothScatter()
,
shadowText()
,
shadowText_options()
,
showColors()
,
sqrtAxis()
,
usrBox()
Examples
xlabs <- paste0("item_", (1:20));
ylabs <- paste0("rownum_", (1:20));
# proper adjustment should be done using withr, for example
x_cex <- 0.8;
y_cex <- 1.2;
withr::with_par(adjustAxisLabelMargins(xlabs, 1, cex.axis=x_cex), {
withr::local_par(adjustAxisLabelMargins(ylabs, 2, cex.axis=y_cex))
nullPlot(xlim=c(1,20), ylim=c(1,20), doMargins=FALSE);
graphics::axis(1, at=1:20, labels=xlabs, las=2, cex.axis=x_cex);
graphics::axis(2, at=1:20, labels=ylabs, las=2, cex.axis=y_cex);
})
withr::with_par(adjustAxisLabelMargins(xlabs, 3, cex.axis=x_cex), {
withr::local_par(adjustAxisLabelMargins(ylabs, 4, cex.axis=y_cex))
nullPlot(xlim=c(1,20), ylim=c(1,20), doMargins=FALSE);
graphics::axis(3, at=1:20, labels=xlabs, las=2);
graphics::axis(4, at=1:20, labels=ylabs, las=2);
})
par("mar")