logHist: Plot Log-Histogram

logHistR Documentation

Plot Log-Histogram


Plots a log-histogram, as in for example Feiller, Flenley and Olbricht (1992).

The intended use of the log-histogram is to examine the fit of a particular density to a set of data, as an alternative to a histogram with a density curve. For this reason, only the log-density histogram is implemented, and it is not possible to obtain a log-frequency histogram.

The log-histogram can be plotted with histogram-like dashed vertical bars, or as points marking the tops of the log-histogram bars, or with both bars and points.


  logHist(x, breaks = "Sturges", 
          include.lowest = TRUE, right = TRUE, 
          main = paste("Log-Histogram of", xName), 
          xlim = range(breaks), ylim = NULL, xlab = xName, 
          ylab = "Log-density", nclass = NULL, htype = "b", ...)



A vector of values for which the log-histogram is desired.


One of:

  • a vector giving the breakpoints between log-histogram cells;

  • a single number giving the number of cells for the log-histogram;

  • a character string naming an algorithm to compute the number of cells (see Details);

  • a function to compute the number of cells.

In the last three cases the number is a suggestion only.


Logical. If TRUE, an ‘x[i]’ equal to the ‘breaks’ value will be included in the first (or last, for right = FALSE) bar.


Logical. If TRUE, the log-histograms cells are right-closed (left open) intervals.

main, xlab, ylab

These arguments to title have useful defaults here.


Sensible default for the range of x values.


Calculated by logHist, see Details.


Numeric (integer). For compatibility with hist only, nclass is equivalent to breaks for a scalar or character argument.


Type of histogram. Possible types are:

  • '"h"' for a *h*istogram only;

  • '"p"' for *p*oints marking the top of the histogram bars only;

  • '"b"' for *b*oth.


Further graphical parameters for calls to plot and points.


Uses hist.default to determine the cells or classes and calculate counts.

To calculate ylim the following procedure is used. The upper end of the range is given by the maximum value of the log-density, plus 25% of the absolute value of the maximum. The lower end of the range is given by the smallest (finite) value of the log-density, less 25% of the difference between the largest and smallest (finite) values of the log-density.

A log-histogram in the form used by Feiller, Flenley and Olbricht (1992) is plotted. See also Barndorff-Nielsen (1977) for use of log-histograms.


Returns a list with components:


The n+1 cell boundaries (= breaks if that was a vector).


n integers; for each cell, the number of x[] inside.


Log of \hat f(x_i), which are estimated density values.

If all(diff(breaks) == 1), estimated density values are the relative frequencies counts/n and in general satisfy \sum_i \hat f(x_i) (b_{i+1}-b_i) = 1, where b_i = breaks[i].


The n cell midpoints.


A character string with the actual x argument name.


The location of the tops of the vertical segments used in drawing the log-histogram.


The value of ylim calculated by logHist.


David Scott d.scott@auckland.ac.nz, Richard Trendall, Thomas Tran


Barndorff-Nielsen, O. (1977) Exponentially decreasing distributions for the logarithm of particle size, Proc. Roy. Soc. Lond., A353, 401–419.

Barndorff-Nielsen, O. and Blæsild, P (1983). Hyperbolic distributions. In Encyclopedia of Statistical Sciences, eds., Johnson, N. L., Kotz, S. and Read, C. B., Vol. 3, pp. 700–707. New York: Wiley.

Fieller, N. J., Flenley, E. C. and Olbricht, W. (1992) Statistics of particle size data. Appl. Statist., 41, 127–146.

See Also



### Consider proportional changes in the index
change <- SandP500[-length(SandP500)]/SandP500[-1]
### Show points only
logHist(change, htype = "p", pch = 20, cex = 0.5)
### Fit the hyperbolic distribution to the changes

HyperbolicDist documentation built on Nov. 26, 2023, 9:07 a.m.