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 intervalContourMin => 0.0β explicitly set a contour minimumContourMax => 10.0β explicitly set a contour maximumContourVals => $pdlβ explicitly set all contour valuesLabel => [1,5,$myfont]β seeaddlabelsbelow π
IfContourValsis specified,ContourInt,ContourMin, andContourMaxare 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
- debian trixie: libpdl-graphics-trid-perl 2.102-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu questing: libpdl-graphics-trid-perl 2.102-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms