R: Draw a Bubble Plot

PlotBubble {DescTools} | R Documentation

## Draw a Bubble Plot

### 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

    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 <andri@signorell.net>

### See Also

`BubbleLegend`, `symbols`, `sunflowerplot`

### Examples

    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))

[Package DescTools version 0.99.34 Index]