| bubbleplot | R Documentation |
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.
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, ...)
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 |
... |
passed to |
y |
a vector of values for the vertical axis. |
z |
a vector of values determining the bubble sizes. |
std |
whether to standardize the |
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 |
ylim |
passed to |
xlab, ylab |
passed to |
pch |
passed to |
cex.points |
scales all bubble sizes. |
col, bg |
passed to |
formula |
has the form |
data |
where formula terms are stored, e.g. data frame or list. |
subset |
a logical vector specifying which data to plot. |
na.action |
how |
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].
Arni Magnusson.
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.
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")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.