inbar | R Documentation |
Draw a barplot
with inset bars.
inbar(
height,
width = 1,
r = NULL,
alpha = if (group.col) r else 1,
space = NULL,
names.arg = NULL,
legend.text = NULL,
horiz = FALSE,
density = NULL,
angle = 45,
col = NULL,
group.col = TRUE,
border = par("fg"),
main = NULL,
sub = NULL,
xlab = NULL,
ylab = NULL,
xlim = NULL,
ylim = NULL,
xpd = TRUE,
log = "",
axes = TRUE,
axisnames = TRUE,
cex.axis = par("cex.axis"),
cex.names = par("cex.axis"),
plot = TRUE,
axis.lty = 0,
offset = 0,
add = FALSE,
ann = !add && par("ann"),
args.legend = NULL,
...
)
height |
a matrix of data describing the bars which make up the plot, usually a main/total bar and one or more smaller or subsets of the total; bars are grouped by columns; the first row will be the main bar and other rows will be minor bars |
width |
optional vector of bar widths. Re-cycled to length the
number of bars drawn. Specifying a single value will have no
visible effect unless |
r |
distance (in user coordinates) each inset bar is from the edge of the main bar |
alpha |
numeric value in |
space |
the amount of space (as a fraction of the average bar
width) left before each bar. May be given as a single number or
one number per bar. If |
names.arg |
a vector of names to be plotted below each bar or
group of bars. If this argument is omitted, then the names are
taken from the |
legend.text |
a vector of text used to construct a legend for
the plot, or a logical indicating whether a legend should be
included. This is only useful when |
horiz |
a logical value. If |
density |
a vector giving the density of shading lines, in
lines per inch, for the bars or bar components.
The default value of |
angle |
the slope of shading lines, given as an angle in degrees (counter-clockwise), for the bars or bar components. |
col |
colors for each bar; if a vector, each |
group.col |
logical; if |
border |
the color to be used for the border of the bars.
Use |
main, sub |
main title and subtitle for the plot. |
xlab |
a label for the x axis. |
ylab |
a label for the y axis. |
xlim |
limits for the x axis. |
ylim |
limits for the y axis. |
xpd |
logical. Should bars be allowed to go outside region? |
log |
string specifying if axis scales should be logarithmic; see
|
axes |
logical. If |
axisnames |
logical. If |
cex.axis |
expansion factor for numeric axis labels (see
|
cex.names |
expansion factor for axis names (bar labels). |
plot |
logical. If |
axis.lty |
the graphics parameter |
offset |
a vector indicating how much the bars should be shifted relative to the x axis. |
add |
logical specifying if bars should be added to an already
existing plot; defaults to |
ann |
logical specifying if the default annotation ( |
args.legend |
list of additional arguments to pass to
|
... |
arguments to be passed to/from other methods. For the
default method these can include further arguments (such as
|
A numeric vector with the midpoint of each main bar (i.e., identical to a
call to barplot(..., beside = FALSE)
).
Additionally, a list attribute (attr(., "coords")
) where each list
element corresponds to a group of bars. The matrices contain coordinates
of each rectangle plus midpoints.
tracebar
set.seed(1)
tbl <- sapply(1:3, function(x) sort(rpois(3, 10), decreasing = TRUE))
barplot(tbl, col = 1:3)
inbar(tbl, col = 1:3)
inbar(tbl, col = matrix(rainbow(length(tbl)), nrow(tbl)))
## compare group.col = TRUE (default)
inbar(tbl, col = 1:3)
## compare group.col = FALSE
inbar(tbl, col = 1:3, group.col = FALSE)
inbar(
tbl, col = 1:3, r = c(0.5, 0.8), alpha = c(1, 0.5, 0.25),
horiz = TRUE, names.arg = 1:3,
legend.text = 1:3, xlim = c(0, 20), border = NA
)
## inbar returns rect coordinates for future use
co <- inbar(tbl)
co <- do.call('rbind', attr(co, 'coords'))
points(co[, 'midpoint'], co[, 'ytop'], xpd = NA)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.