# PlotBubble: Draw a Bubble Plot In DescTools: Tools for Descriptive Statistics

## Description

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.

## Usage

 ```1 2 3 4 5 6 7 8``` ```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]) ```

## Arguments

 `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 `xy.coords`. `area` a vector giving the area of the bubbles. `col` colors for the bubbles, passed to `symbol`. The default `NA` (or also `NULL`) means do not fill, i.e., draw transparent bubbles. `cex` extension factor for the area. `border` the border color fot the bubbles. The default means `par("fg")`. Use `border = NA` to omit borders. `xlim, ylim` axes limits. `na.rm` logical, should NAs be omitted? Defaults to FALSE. `formula` a formula of the form `lhs ~ rhs` where `lhs` gives the data values and rhs the corresponding groups. `data` an optional matrix or data frame (or similar: see `model.frame`) containing the variables in the formula `formula`. By default the variables are taken from `environment(formula)`. `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 `plot` function.

## Details

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`.

## Note

A legend can be added with `BubbleLegend`.

## Author(s)

Andri Signorell <[email protected]>

`BubbleLegend`, `symbols`, `sunflowerplot`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14``` ```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)) ```