.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "GRAPHICS 1p" .TH GRAPHICS 1p "2023-06-17" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PDL::Graphics \- Introduction to the PDL::Graphics modules .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1PDL\s0 has full-featured plotting abilities. Unlike \s-1MATLAB, PDL\s0 relies more on third-party libraries for its plotting features: Prima, Gnuplot, OpenGL, PLplot and PGplot. \s-1PDL\s0 has several plotting modules that you can choose from, each of them with their particular strength and weaknesses. In this page, you will find a short review of each of the main PDL::Graphics::* modules. .SH "GRAPHIC MODULES REVIEWS" .IX Header "GRAPHIC MODULES REVIEWS" .SS "The newest generation of PDL::Graphics modules" .IX Subsection "The newest generation of PDL::Graphics modules" \fIPDL::Graphics::Simple\fR .IX Subsection "PDL::Graphics::Simple" .PP Best for: backend-independent output: you get the same plots, whichever of the graphical module you manage to install. .PP A unified backend-independent plotting interface for \s-1PDL.\s0 It implements all the functionality used in the PDL::Book examples, and it will probably be the easiest PDL::Graphics module for you to install, as it relies on any of the other ones. Because it is backend-independent, the plot you get will always be what you asked for, regardless of which plotting engine you have installed on your system. .PP Only a small subset of \s-1PDL\s0's complete graphics functionality is supported \*(-- each individual plotting module has unique advantages and functionality that are beyond what PDL::Graphics::Simple can do. .PP \fIPDL::Graphics::Gnuplot\fR .IX Subsection "PDL::Graphics::Gnuplot" .PP Best for: publication-quality 2D and 3D plots .PP Gnuplot is widely used and produces publication-quality plots. It is also interactive: you can pan, scale, and rotate both 2\-D and 3\-D plots. And its \s-1API\s0 is powerful, simple and intuitive. .PP A video tutorial is available. .PP Notice: you must install gnuplot on your computer first. .PP \fIPDL::Graphics::Prima\fR .IX Subsection "PDL::Graphics::Prima" .PP Best for: Integration of your plots into your application \s-1GUI.\s0 Possibility to create a dedicated \s-1GUI\s0 to let your application users interact with the plotted data. .PP Lets you focus on what you want to visualize rather than the details of how you would draw it. Its killer feature is that it belongs to the the Prima \s-1GUI\s0 environment (an alternative to Tk, Gtk, Wx, etc). Prima provides an array of useful interactive widgets and a simple but powerful event-based programming model. These tools allow you to build interactive data visualization and analysis applications with sophisticated plotting and intuitive user interaction in only a few hundred lines of code. Or more simply, to include a plot into an application. .PP For this reason, PDL::Graphics::Prima's \s-1API\s0 is more complex than PDL::Graphics::Gnuplot's. It is advised to start with PDL::Graphics::Prima::Simple, which focuses on the plotting functions and does not mess with Widgets. A tutorial is available here: http://search.cpan.org/~chm/PDL\-2.006/Demos/Prima.pm As well as a video tutorial . .PP \fIPDL::Graphics::TriD\fR .IX Subsection "PDL::Graphics::TriD" .PP Best for: Plotting heavy 3D images, fast. .PP The native \s-1PDL 3D\s0 graphics library using OpenGL as a backend for 3D plots and data visualization. With OpenGL, it is easy to manipulate the resulting 3D objects with the mouse in real time. .PP OpenGL makes PDL::Graphics::TriD a lot faster than Gnuplot to manipulate 3D images. But Gnuplot's output is publication quality, and Gnuplot is in general easier to manipulate. If you manipulate heavy images, PDL::Graphics::TriD might be the thing for you. .SS "Good old PDL::Graphics modules" .IX Subsection "Good old PDL::Graphics modules" Still well maintained, documented, and widely used. .PP \fIPDL::Graphics::PLplot\fR .IX Subsection "PDL::Graphics::PLplot" .PP Best for: Plotting 2D functions as well as 2D and 3D data sets. .PP This is an interface to the PLplot plotting library. PLplot is a modern, open source library for making scientific plots. It supports plots of both 2D and 3D data sets. PLplot is best supported for unix/linux/macosx platforms. It has an active developers community and support for win32 platforms is improving. .PP \fIPDL::Graphics::PGPLOT\fR .IX Subsection "PDL::Graphics::PGPLOT" .PP Best for: Plotting 2D functions. More widely used in the scientific community .PP This is an interface to the venerable \s-1PGPLOT\s0 library. \s-1PGPLOT\s0 has been widely used in the academic and scientific communities for many years. In part because of its age, \s-1PGPLOT\s0 has some limitations compared to newer packages such as PLplot (e.g. no \s-1RGB\s0 graphics). But it has many features that still make it popular in the scientific community. .SH "SEE ALSO" .IX Header "SEE ALSO" PDL::Graphics::Simple .PP PDL::Graphics::Gnuplot .PP PDL::Graphics::Prima .PP PDL::Graphics::TriD .PP PDL::Graphics::PGPLOT .PP PDL::Graphics::PLplot .SH "AUTHOR" .IX Header "AUTHOR" Pierre Masci, 2013