---
name: "PDL::Graphics::TriD::Contours"
section: "3pm"
platform: "linux"
package: "libpdl-graphics-trid-perl"
version: "2.102-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/PDL::Graphics::TriD::Contours"
---

# PDL::Graphics::TriD::Contours(3pm)

3D Surface contours for TriD

## NAME

PDL::Graphics::TriD::Contours - 3D Surface contours for TriD

## SYNOPSIS

```
    # A simple contour plot in black and white
    use PDL::Graphics::TriD;
    use PDL::Graphics::TriD::Contours;
    $size = 25;
    $x = (xvals zeroes $size,$size) / $size;
    $y = (yvals zeroes $size,$size) / $size;
    $z = (sin($x*6.3) * sin($y*6.3)) ** 3;
    $data=PDL::Graphics::TriD::Contours->new($z,
               [$z->xvals/$size,$z->yvals/$size,0]);
    PDL::Graphics::TriD::graph_object($data)
```

## FUNCTIONS

### new()

Define a new contour plot for TriD.

```
  $data=PDL::Graphics::TriD::Contours->new($d,[$x,$y,$z],[$r,$g,$b],$options);
```

where `$d` is a 2D pdl of data to be contoured. \[$x,$y,$z\] define a 3D map of `$d` into the visualization space \[$r,$g,$b\] is an optional \[3,1\] ndarray specifying the contour color and `$options` is a hash reference to a list of options documented below.  Contours can also be coloured by value using the set\_color\_table function.

```
  ContourInt  => 0.7  # explicitly set a contour interval
  ContourMin  => 0.0  # explicitly set a contour minimum
  ContourMax  => 10.0 # explicitly set a contour maximum
  ContourVals => $pdl # explicitly set all contour values
  Label => [1,5,$myfont] # see addlabels below
  If ContourVals is specified ContourInt, ContourMin, and ContourMax
  are ignored.  If no options are specified, the algorithm tries to
  choose values based on the data supplied.
```

### addlabels()

Add labels to a contour plot

```
  $contour->addlabels($labelint,$segint);
```

`$labelint` is the integer interval between labeled contours.  If you have 8 contour levels and specify `$labelint`=3 addlabels will attempt to label the 1st, 4th, and 7th contours.  `$labelint` defaults to 1.

`$segint` specifies the density of labels on a single contour level.  Each contour level consists of a number of connected line segments, `$segint` defines how many of these segments get labels. `$segint` defaults to 5, that is every fifth line segment will be labeled.

### set\_colortable($table)

Sets contour level colors based on the color table.

`$table` is passed in as either an ndarray of \[3,n\] colors, where n is the number of contour levels, or as a reference to a function which expects the number of contour levels as an argument and returns a \[3,n\] ndarray.  It should be straight forward to use the PDL::Graphics::LUT tables in a function which subsets the 256 colors supplied by the look up table into the number of colors needed by Contours.

### coldhot\_colortable()

A simple colortable function for use with the set\_colortable function.

coldhot\_colortable defines a blue red spectrum of colors where the smallest contour value is blue, the highest is red and the others are shades in between.
