Last data update: 2014.03.03

R: Draw a Bubble Plot
PlotBubbleR 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, border = NA, na.rm = FALSE, inches = 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.

border

the border color fot the bubbles. Set NA if there should be no border at all. This is the default.

na.rm

logical, should NAs be omitted? Defaults to FALSE.

inches

TRUE, FALSE or a positive number. See 'Details'.

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(x=d.pizza$delivery_min, y=d.pizza$temperature, area=d.pizza$price/40,
           xlab="delivery time", ylab="temperature",
           col=SetAlpha(as.numeric(d.pizza$area)+2, .5), border="darkgrey",
           na.rm=TRUE, main="Price-Bubbles", panel.first=grid())

BubbleLegend("bottomleft", frame=TRUE, cols=SetAlpha("steelblue",0.5), bg="green",
             radius = c(10, 5, 2)/2, labels=c(10, 5, 2), cex=0.8,
             cols.lbl=c("yellow", "red","blue"), width=12)

PlotBubble(latitude ~ longitude, area=(smoky+1)*2e8,
           col=SetAlpha(1, 0.5), data=d.whisky)

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(DescTools)
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/DescTools/PlotBubble.Rd_%03d_medium.png", width=480, height=480)
> ### Name: PlotBubble
> ### Title: Draw a Bubble Plot
> ### Aliases: PlotBubble PlotBubble.default PlotBubble.formula
> ### Keywords: hplot
> 
> ### ** Examples
> 
> 
> PlotBubble(x=d.pizza$delivery_min, y=d.pizza$temperature, area=d.pizza$price/40,
+            xlab="delivery time", ylab="temperature",
+            col=SetAlpha(as.numeric(d.pizza$area)+2, .5), border="darkgrey",
+            na.rm=TRUE, main="Price-Bubbles", panel.first=grid())
> 
> BubbleLegend("bottomleft", frame=TRUE, cols=SetAlpha("steelblue",0.5), bg="green",
+              radius = c(10, 5, 2)/2, labels=c(10, 5, 2), cex=0.8,
+              cols.lbl=c("yellow", "red","blue"), width=12)
> 
> PlotBubble(latitude ~ longitude, area=(smoky+1)*2e8,
+            col=SetAlpha(1, 0.5), data=d.whisky)
[[1]]
 [1] 286580 326340 352960 141560 355350 194050 247670 340754 340754 270820
[11] 307750 332680 212600 323450 325800 303330 242260 294860 131330 126680
[21] 142210 142920 318790 290250 328920 316600 323520 266610 263670 271570
[31] 332360 295960 372120 322640 381020 327610 340754 319820 251810 172090
[41] 327760 326490 361200 333000 320950 332680 252810 344380 319560 322640
[51] 276750 327650 285630 345340 342610 152660 319470 140430 138680 322640
[61] 239370 322640 327710 322640 322640 332950 185940 370860 336730 286040
[71] 326140 342850 326930 278740 172280 340754 342650 137950 319210 321180
[81] 265360 150450 279120 315100 315180 289690

$ylab
[1] "latitude"

$area
 [1] 6e+08 4e+08 6e+08 1e+09 6e+08 4e+08 2e+08 4e+08 4e+08 6e+08 6e+08 4e+08
[13] 6e+08 4e+08 6e+08 6e+08 4e+08 6e+08 8e+08 6e+08 4e+08 1e+09 4e+08 8e+08
[25] 6e+08 6e+08 6e+08 6e+08 6e+08 4e+08 4e+08 4e+08 4e+08 4e+08 8e+08 2e+08
[37] 4e+08 4e+08 4e+08 6e+08 4e+08 4e+08 6e+08 4e+08 4e+08 4e+08 2e+08 4e+08
[49] 4e+08 4e+08 4e+08 4e+08 4e+08 8e+08 4e+08 6e+08 4e+08 1e+09 1e+09 4e+08
[61] 4e+08 4e+08 4e+08 4e+08 4e+08 6e+08 6e+08 6e+08 6e+08 6e+08 6e+08 4e+08
[73] 4e+08 4e+08 6e+08 4e+08 4e+08 8e+08 4e+08 6e+08 6e+08 4e+08 6e+08 4e+08
[85] 4e+08 2e+08

$col
[1] "#00000080"

> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>