histogram(formula,
          data, 
          type = c("percent", "count", "density"),
          nint = if(is.factor(x)) length(levels(x))
                 else round(log2(length(x))+1),
          endpoints = range(x[!na.x]),
          breaks = if(is.factor(x)) seq(0.5, length = length(levels(x))
          + 1) else do.breaks(endpoints, nint),
          equal.widths = FALSE, 
          ...)densityplot(formula, data, n = 50, plot.points = TRUE, ref = FALSE,
            ...)
~ x | g1 * g2 * ...
    indicates that histograms of x should be produced conditioned
    on the levels of the (optional) variables g1,g2,.... When
    the conditioning variables g1,g2,...breaks is
    unspecified in the call.breaks is unspecified.type that makes sense
    is density.Usually all panels use the same brea
breaks=NULL.
    If TRUE, equally spaced bins will be selected, otherwise, 
    approximately equal area bins will be selected (this would mean that
    the breakpoints will not be equally spacex values
    should be plotted.densityplot, if the default panel function is
    used, then arguments appropriate to density can be
    included. This can control the details of how the Kedensityplot(formula, data = parent.frame(), allow.multiple = FALSE, outer = FALSE, auto.key = FALSE, aspect = "fill", layout = NULL, panel = if (is.null(groups)) "panel.densityplot" else "panel.superpose", prepanel = NULL, scales = list(), strip = TRUE, groups = NULL, xlab, xlim, ylab, ylim, bw = NULL, adjust = NULL, kernel = NULL, window = NULL, width = NULL, give.Rkern = FALSE, n = 50, from = NULL, to = NULL, cut = NULL, na.rm = NULL, ..., panel.groups = "panel.densityplot", subscripts = !is.null(groups), subset = TRUE)
histogram draws Conditional Histograms, while
  densityplot draws Conditional Kernel Density Plots.  The
  density estimate in densityplot is actually calculated using
  the function density, and all arguments accepted by it can be
  passed (as ...) in the call to densityplot to control
  the output. See documentation of density for details. (Note: The
  default value of the argument n of density is changed to
  50.)
  
  These and all other high level Trellis functions have several
  arguments in common. These are extensively documented only in the
  help page for xyplot, which should be consulted to learn more
  detailed usage.xyplot,
  panel.histogram,
  density,
  panel.densityplot,
  panel.mathdensity,
  Latticedata(singer)
histogram( ~ height | voice.part, data = singer, nint = 17,
          endpoints = c(59.5, 76.5), layout = c(2,4), aspect = 1,
          xlab = "Height (inches)")
## The following would not be possible in S-Plus
histogram( ~ height | voice.part, data = singer,
          xlab = "Height (inches)", type = "density",
          panel = function(x, ...) {
              panel.histogram(x, ...)
              panel.mathdensity(dmath = dnorm,
                                args = list(mean=mean(x),sd=sd(x)))
          } )
densityplot( ~ height | voice.part, data = singer, layout = c(2, 4),  
            xlab = "Height (inches)", bw = 5)Run the code above in your browser using DataLab