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.