Learn R Programming

gplots (version 3.2.0)

bubbleplot: Bubble Plot

Description

Draw a bubble plot, a scatterplot with varying symbol sizes and colors, or add points to existing plots. A variety of input formats are supported, including vectors, matrices, data frames, formulas, etc.

Usage

bubbleplot(x, ...)

# S3 method for default bubbleplot(x, y, z, std=TRUE, pow=0.5, add=FALSE, rev=FALSE, type="p", ylim=NULL, xlab=NULL, ylab=NULL, pch=c(16,1), cex.points=1, col="black", bg=par("bg"), ...)

# S3 method for formula bubbleplot(formula, data, subset, na.action=NULL, ...)

Arguments

x

a vector of values for the horizontal axis. Can also be a 2-dimensional matrix or table (x values in column names and y values in row names), or a data frame containing x, y, and z in that order. If the data frame contains column names x, y, and z then they will be used for plotting.

...

passed to plot and points.

y

a vector of values for the vertical axis.

z

a vector of values determining the bubble sizes.

std

whether to standardize the z values.

pow

a power coefficient for the bubble sizes.

add

whether to add bubbles to an existing plot.

rev

whether to reverse the y axis.

type

passed to points.

ylim

passed to plot.

xlab, ylab

passed to plot.

pch

passed to points.

cex.points

scales all bubble sizes.

col, bg

passed to points.

formula

has the form z ~ x + y, where z determines the bubble sizes and x and y determine bubble locations.

data

where formula terms are stored, e.g. data frame or list.

subset

a logical vector specifying which data to plot.

na.action

how NA values are handled.

Author

Arni Magnusson.

Details

The std standardization sets z = abs(z) / mean(abs(z)).

The pow = 0.5 (square root) is a good default, where a z value of 2 has twice the area of 1. See example #2 below for an exception, where the z value is tree circumference and therefore proportional to the tree diameter.

The pch, col, and bg arguments can be be vectors of length 2, where positive z values are drawn with pch[1], col[1], bg[1] and negative z values are drawn with pch[2], col[2], and bg[2].

See Also

points is the underlying function used to draw the bubbles.

symbols can also draw bubbles, but does not handle negative z values or have convenience features such as pow and rev.

balloonplot provides an alternative interface and visual style based on tables instead of scatterplots.

Examples

Run this code
catch.t <- xtabs(Catch~Year+Age, catch.d)              # example table
catch.m <- as.matrix(as.data.frame(unclass(catch.t)))  # example matrix

# 1  Formula
bubbleplot(Catch~Age+Year, data=catch.d)
# Use rev=TRUE to get same layout as crosstab matrix:
print(catch.m)
bubbleplot(Catch~Age+Year, data=catch.d, rev=TRUE, las=1)

# 2  Data frame
bubbleplot(catch.d)
bubbleplot(Orange)
# Visualize tree transverse section at breast height
bubbleplot(Orange, pow=1, cex=2, pch=21,
           col="darkred", bg="peru", lwd=1.5)

# 3  Matrix or table
bubbleplot(catch.m)
bubbleplot(catch.t)

# 4  Positive and negative values
bubbleplot(catch.r)
bubbleplot(Resid~Age+Year, catch.r, subset=Age %in% 4:9,
           rev=TRUE, xlim=c(3.5,9.5), cex=1.3)
# Residuals from orange tree model
library(nlme)
fm <- nlme(circumference~phi1/(1+exp(-(age-phi2)/phi3)),
           fixed=phi1+phi2+phi3~1, random=phi1~1|Tree,
           data=Orange, start=c(phi1=200,phi2=800,phi3=400))
bubbleplot(residuals(fm)~Tree+age, Orange)
bubbleplot(residuals(fm)~Tree+age, Orange, cex=2.5, pch=16,
           col=c("dodgerblue","orange"))

# 5  Richter magnitude, amplitude, and energy release
bubbleplot(mag~long+lat, quakes, pch=1)
bubbleplot(10^mag~long+lat, quakes, cex=1.2, col=gray(0, 0.3))
bubbleplot(sqrt(1000)^mag~long+lat, quakes, cex=1.2, col=gray(0, 0.3))
bubbleplot(sqrt(1000)^mag~long+lat, quakes, cex=1.2, col="#FF00004D")

Run the code above in your browser using DataLab