PDL::G...ontours(3pm)

πŸ’– PDL::Graphics::TriD::Contours πŸ’–

okay bestie, listen β€” this is the 3D Surface contours for TriD situation, part of the User Contributed Perl Documentation collection. it lives in PDL::Graphics::TriD::Contours and it's literally here to make your data look like a topographic map but, like, in 3D. slay.


✨ SYNOPSIS ✨

a little baby contour plot, in black and white, no notes:

# 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. yes, you're the main character, you get to make one.

$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. iykyk πŸ’…

  • 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. fr fr, don't fight it.

If no options are specified, the algorithm tries to choose values based on the data supplied. it's giving "trust the process" ✨


πŸ¦‹ addlabels()

Add labels to a contour plot. aesthetic AND informative, we love that for us.

$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, and $segint defines how many of these segments get labels. $segint defaults to 5 β€” that is, every fifth line segment will be labeled. periodt. 🫢


🌈 set_colortable($table)

Sets contour level colors based on the color table. the way that this function eats, honestly.

$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. lowkey elegant, no cap.


πŸ’œ coldhot_colortable()

A simple colortable function for use with the set_colortable function. it's a little guy. it's doing its best. iconic.

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. πŸ₯Άβž‘️πŸ”₯ vibe check passed.


okay that's the whole thing, you're basically a 3D visualization girlie now πŸ’…βœ¨

and a lil sign-off from the archives: this page came from the User Contributed Perl Documentation crew, built with perl v5.40.1, dated 2025-04-11. mwah, go make something pretty πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from