Prepare a Concentration-Number (C-N) Plot


Display a log-log Concentration-Number (C-N) Plot to inspect a data set for multifractality.


3, xlab = deparse(substitute(xx)), 
        ylab = "Cumulative Percentage of Data", main = "Multifractality Plot",
        ifrev = FALSE, xlim = range(xx, na.rm = TRUE), ...)



name of the variable to be plotted.


by default the character string for xx is used for the x-axis plot titles. An alternate title can be displayed with xlab = "text string", see Examples.


by default the y-axia is labelled ‘Cumulative Percentage of Data’. This replaced with no title, main = " ", or text of the user's choice, main = "text string".


by default a plot title of ‘Multifractality Plot’ is provided. This replaced with no title, main = " ", or text of the user's choice, main = "text string".


by default the empirical C-N function is plotted from highest value to lowest, ifrev = FALSE. As the C-N plot is a log-log display this provides greater detail for the highest values. The direction of accumulation can be key in detecting multifractal patterns, it is usually informative to also prepare a plot with ifrev = TRUE, i.e. accumulation from lowest to highest values. To see a dramatic example of this, run the Examples below.


by default this is the range of the data with any NAs removed, xlim = range (xx, ra.rm = TRUE). When called from caplot or shape.alt an appropriate value for xlim is determined by the calling functions to ensure all four panels have the same x-axis scaling. xlim may be defined, see Note below.


further arguments to be passed to methods. For example, the size of the axis scale annotation can be changed by setting cex.axis, the size of the axis titles by setting cex.lab, and the size of the plot title by setting cex.main. For example, if it is required to make the plot title smaller, add cex.main = 0.9 to reduce the font size by 10%. By default individual data points are marked by a plus sign, pch = 3, if a cross or open circle is desired, then set pch = 4 or pch = 1, respectively. See display.marks for all available symbols.


Any multi-fractality in the data, will be revealed as 'lines' of data points with different slopes.


Any less than detection limit values represented by negative values, or zeros or other numeric codes representing blanks in the data, must be removed prior to executing this function, see ltdl.fix.df.

Any NAs in the data vector are removed prior to displaying the plot.

If the default selection for xlim is inappropriate it can be set, e.g., xlim = c(0, 200) or c(2, 200), the latter being appropriate for a logarithmcally scaled plot, i.e. log = TRUE. If the defined limits lie within the observed data range truncated plots will be displayed. If this occurs the number of data points omitted is displayed below the total number of observations in the various panels.

If it is desired to prepare a display of data falling within a defined part of the actual data range, then either a data subset can be prepared externally using the appropriate R syntax, or xx may be defined in the function call as, for example, Cu[Cu < some.value] which would remove the influence of one or more outliers having values greater than some.value. In this case the number of data values displayed will be the number that are <some.value.

In some R installations the generation of multi-panel displays and the use of function eqscplot from package MASS causes warning messages related to graphics parameters to be displayed on the current device. These may be suppressed by entering options(warn = -1) on the R command line, or that line may be included in a ‘first’ function prepared by the user that loads the ‘rgr’ package, etc.

For summary statistics displays to complement the graphics see, gx.summary1, gx.summary2 and inset.


Robert G. Garrett


Agterberg, F.P., 1995. Multifractal Modeling of the Sizes and Grades of Giant and Supergiant Deposits. International Geology Review, Vol. 37, No. 1, pp. 1-8.

See Also

gx.hist, cnpplt, gx.ecdf,,, display.lty, display.marks, ltdl.fix.df, inset


## Make test data available

## Generates an initial display to have a first look at the data and 
## decide how best to proceed

## Provides a more appropriate initial display and indicates the 
## quartiles, xlab = "Cu (mg/kg) in <2 mm O-horizon soil", ifqs = TRUE)

## Causes the C-N plot to be cumulated in reverse order.  This will reveal
## any multi-fractal properties of the data at lower concentrations, xlab = "Cu (mg/kg) in <2 mm O-horizon soil", ifrev = TRUE)

## Detach test data

Want to suggest features or report bugs for Use the GitHub issue tracker. Vote for new features on Trello.

comments powered by Disqus