---
name: "plcont"
section: "3plplot"
platform: "linux"
package: "plplot-doc"
version: "5.15.0+dfsg2-15"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/plcont"
---

# plcont(3plplot)

Contour plot

## NAME

**plcont** - Contour plot

## SYNOPSIS

**plcont**(*f*, *nx*, *ny*, *kx*, *lx*, *ky*, *ly*, *clevel*, *nlevel*, *pltr*, *pltr\_data*)

## DESCRIPTION

Draws a contour plot of the data in *f*\[*nx*\]\[*ny*\], using the *nlevel* contour levels specified by *clevel*. Only the region of the matrix from *kx* to *lx* and from *ky* to *ly* is plotted out where all these index ranges are interpreted as one-based for historical reasons.  A transformation routine pointed to by *pltr* with a generic pointer *pltr\_data* for additional data required by the transformation routine is used to map indices within the matrix to the world coordinates.

Redacted form: **plcont(f, kx, lx, ky, ly, clevel, pltr, pltr\_data)** where (see above discussion) the pltr, pltr\_data callback arguments are sometimes replaced by a tr vector with 6 elements; xg and yg vectors; or xg and yg matrices.

This function is used in examples 9, 14, 16, and 22.

## ARGUMENTS

- *f* (**PLFLT\_MATRIX**(3plplot), input)

  A matrix containing data to be contoured.

- *nx, ny* (**PLINT**(3plplot), input)

  The dimensions of the matrix *f*.

- *kx, lx* (**PLINT**(3plplot), input)

  Range of x indices to consider where 0 \<= kx-1 \< lx-1 \< nx.  Values of kx and lx are one-based rather than zero-based for historical backwards-compatibility reasons.

- *ky, ly* (**PLINT**(3plplot), input)

  Range of y indices to consider where 0 \<= ky-1 \< ly-1 \< ny.  Values of ky and ly are one-based rather than zero-based for historical backwards-compatibility reasons.

- *clevel* (**PLFLT\_VECTOR**(3plplot), input)

  A vector specifying the levels at which to draw contours.

- *nlevel* (**PLINT**(3plplot), input)

  Number of contour levels to draw.

- *pltr* (**PLTRANSFORM\_callback**(3plplot), input)

  A callback function that defines the transformation between the zero-based indices of the matrix *f* and the world coordinates.For the C case, transformation functions are provided in the PLplot library: **pltr0**(3plplot) for the identity mapping, and **pltr1**(3plplot) and **pltr2**(3plplot) for arbitrary mappings respectively defined by vectors and matrices.  In addition, C callback routines for the transformation can be supplied by the user such as the mypltr function in examples/c/x09c.c which provides a general linear transformation between index coordinates and world coordinates.For languages other than C you should consult the PLplot documentation for the details concerning how **PLTRANSFORM\_callback**(3plplot) arguments are interfaced. However, in general, a particular pattern of callback-associated arguments such as a tr vector with 6 elements; xg and yg vectors; or xg and yg matrices are respectively interfaced to a linear-transformation routine similar to the above mypltr function; **pltr1**(3plplot); and **pltr2**(3plplot). Furthermore, some of our more sophisticated bindings (see, e.g., the PLplot documentation) support native language callbacks for handling index to world-coordinate transformations.  Examples of these various approaches are given in examples/\<language\>x09\*, examples/\<language\>x16\*, examples/\<language\>x20\*, examples/\<language\>x21\*, and examples/\<language\>x22\*, for all our supported languages.

- *pltr\_data* (**PLPointer**(3plplot), input)

  Extra parameter to help pass information to **pltr0**(3plplot), **pltr1**(3plplot), **pltr2**(3plplot), or whatever callback routine that is externally supplied.

## AUTHORS

Many developers (who are credited at http://plplot.org/credits.php) have contributed to PLplot over its long history.

## SEE ALSO

PLplot documentation at http://plplot.org/documentation.php.
