Draw a Bubble Plot
Draw a bubble plot, defined by a pair of coordinates x, y to place the bubbles, an area
definition configuring the dimension and a color vector setting the color of the bubbles.
The legitimation to define a new function instead of just using plot(symbols(...))
is the automated calculation of the axis limits, ensuring that
all bubbles will be fully visible.
PlotBubble(x, ...) ## Default S3 method: PlotBubble(x, y, area, col = NA, cex = 1, border = par("fg"), xlim = NULL, ylim = NULL, na.rm = FALSE, ...) ## S3 method for class 'formula' PlotBubble(formula, data = parent.frame(), ..., subset, ylab = varnames[response])
x, y |
the x and y co-ordinates for the centres of the bubbles. They can be specified in any way which is accepted by |
area |
a vector giving the area of the bubbles. |
col |
colors for the bubbles, passed to |
cex |
extension factor for the area. |
border |
the border color fot the bubbles. The default means |
xlim, ylim |
axes limits. |
na.rm |
logical, should NAs be omitted? Defaults to FALSE. |
formula |
a formula of the form |
data |
an optional matrix or data frame (or similar: see |
subset |
an optional vector specifying a subset of observations to be used. |
ylab |
the y-label for the plot used in the formula interface. |
... |
the dots are passed to the |
Argument inches
controls the sizes of the symbols. If TRUE
(the default), the symbols are scaled so that the largest dimension of any symbol is one inch. If a positive number is given the symbols are scaled to make largest dimension this size in inches (so TRUE
and 1
are equivalent). If inches
is FALSE
, the units are taken to be those of the appropriate axes.
This behaviour is the same as in symbols
.
A legend can be added with BubbleLegend
.
Andri Signorell <andri@signorell.net>
PlotBubble(latitude ~ longitude, area=(smoky+1)*2e8, col=SetAlpha(1, 0.5), data=d.whisky) cols <- c("olivedrab1","orange","green","mediumturquoise","mediumorchid2","firebrick1") PlotBubble(x = state.x77[,"Income"], y = state.x77[,"Life Exp"], cex=.00004, area = state.x77[,"Population"], col = cols[state.region], border="grey50", panel.first=grid(), xlab="Income", ylab="Life Exp.", las=1 ) BubbleLegend(x = "topright", area = c(20000, 10000, 1000), cex=.00004, frame=NA, cols=cols[1:3], labels = c(20000, 10000, 1000), cex.names=0.7) legend(x="bottomright", fill=cols[1:4], legend=levels(state.region))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.