bubbleplot: Bubble Plot

View source: R/bubbleplot.R

bubbleplotR Documentation

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

## Default S3 method:
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 class '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.

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

Author(s)

Arni Magnusson.

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

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

gplots documentation built on Oct. 6, 2024, 1:07 a.m.