barcode {barcode}R Documentation

Barcode plots


Produce barcode plot(s) of the given (grouped) values.


barcode(x, outer.margins = list(bottom = unit(2, "lines"),
                                left = unit(2, "lines"), 
                                top = unit(2, "lines"), 
                                right = unit(2, "lines")), 
        horizontal = TRUE, xlim = NULL, nint = 0, main = "", xlab = "", 
        labelloc = TRUE, axisloc = TRUE, labelouter = FALSE, 
        newpage = TRUE, fontsize = 9, ptsize = unit(0.25, "char"), 
        ptpch = 1, bcspace = NULL, use.points = FALSE, buffer = 0.02,
        log = FALSE, outerbox = TRUE)

barcode.panel(x, horizontal = TRUE, xlim = NULL, labelloc = TRUE, axisloc = TRUE, 
              labelouter = FALSE, nint = 0, fontsize = 9, 
              ptsize = unit(0.25, "char"), ptpch = 1, bcspace = NULL, 
              xlab = "", xlaboffset = unit(2.5, "lines"), 
              use.points = FALSE, buffer = 0.02, log = FALSE)



a vector of values for which the barcode is desired, or a list of such vectors for “side-by-side" barcodes. Matrices are coerced to data frames and treated as lists NA's are allowed in the data.


a list of length 4 with units as components named bottom, left, top, and right, giving the outer margins. Defaults to two lines of text.


logical indicating the barcode orientation; the default, TRUE, produces horizontal barcodes.


the x limits (xmin, xmax) of the plot; the default, NULL, uses the range of the full data, range(unlist(x)), plus the multiplicative buffer.


default, 0, uses no “binning”— i.e., the barcode presents the exact measurements, to the precision of the data set; nint=100 uses roughly 100 “bins” in constructing the barcode; fewer bins give a more histogram-like plot.


the plot title.


the axis label for the quantitative measurements.


for the location of the factor labels of the barcodes; default TRUE may also be specified as 'left' or 'top' (having similar results but relating to the horizontal alignment); values 'right' or 'bottom' are available as alternatives to FALSE.


for the location of the quantitative axis labels; default, TRUE, may also be specified as 'left' or 'top' (having similar results but relating to the horizontal alignment); values 'right' or 'bottom' are available as alternatives to FALSE.


default, FALSE, positions all labels within the viewport; TRUE forces the barcodes to the edge of the viewport, with the labels outside the viewport. May be of use to advanced users.


default, TRUE, creates the barcodes in a new graphics device instead of adding the plot to the current viewport.


for the size of the axis and factor labels.


for the size of the plotted points.


for the type of plotted points.


indicates the proportion of total available space occupied by the barcode part of the displays. Can range from 0 to 1; reasonable values seem to be between 0.1 and 0.5.


default FALSE uses segments instead of points in the histogram-style display.


used for tuning the position of the label of the quantitative variable; needs to be a unit.


an additional proportion of empty space added to the right and left of the barcode, to avoid having the maximum and minimum on the frame of the plot.


if TRUE, use the log scale for the y-axis of the histogram-like part of the barcodes.


if TRUE, plot a box around the display.


The barcode plot aids in comparing distributions. It shares some of the characteristics of side-by-side histograms or boxplots, and of rugs or stripplots. We have found it particularly useful with clumped data, when other methods obscure detail.


John Hartigan designed and implemented an early version of the barcode plot. The implementation provided here uses grid graphics, adds some useful options, and is better suited for general distribution.


John W. Emerson and Walton A. Green and John A. Hartigan


Chambers, J. M. and Hastie, T. J. (1992) Statistical Models in S. Wadsworth \& Brooks/Cole.

See Also

YaleToolkit, gpairs, rug, stripplot


# Simulate some data:
x <- list(Rounded.2=round(rnorm(500, 2, 1),2),
          SmallerLevel=c(rnorm(100), rnorm(100,4,1)),
          LargerBivariateRounded.4=round(c(rnorm(500), rnorm(500,3,1)),4))

barcode(x, main="Different orientatation", horizontal=FALSE)

barcode(split(NewHavenResidential$dep, NewHavenResidential$zone),
        xlab="Percent Depreciation", 
        main=paste("New Haven Residential Depreciation by Residential Zone",
             "RS = Single Family, RM = Mixed Residential", sep = "\n"))

[Package barcode version 1.1 Index]