logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Graphics::Libplot - Perl extension for libplot plotting library

Author

       John Lapeyre <lapeyre@physics.arizona.edu> wrote this perl interface.

       The libplot C library is developed by Robert Maier.

Bugs

       The newest API is not supported. There is no test suite with this module, so it is not clear that
       everything works correctly.

Description

       This module lets you create plots by calling the routines in the libplot library.  The libplot library is
       included in the plotutils package.  Wrappers for each published C function are present. So the section of
       the plotutils info pages on programming in C should be your main reference.  There are a few possible
       confusions, which are noted below. libplot has three different api's. This perl module provides and
       interface to the second one. It is the same as the most recent api, except that the the functions are not
       re-entrant. The api supported here is described in the section "Older C application programming
       interfaces" in the libplot manual.

       Some of the C routines require character constants rather than strings.  When using the equivalent perl
       function, you must wrap the character with the 'ord' function. For instance, alabel(ord 'c', ord 'c',
       "some text"); , will write some centered text.

       There is another unrelated perl-module interface to GNU libplot, called "Graphics::Plotter".

Examples

       There are additional examples included in the source distribution.  (They are in
       /usr/share/doc/libgraphics-libplot-perl/examples on Debian systems.)  This example draws a spiraling box
       pattern.

        use Graphics::Libplot ':ALL';

        # type of plotting device
        $device = 'X';
        if (@ARGV) {
           $device = $ARGV[0];
           die "Uknown device: $ARGV[0]" unless $ARGV[0] =~ /^ps|X|fig$/;
        }

        {   # environment for local variables

         my $SIZE=100;
         my ($i,$f,$s,$sf);
         pl_parampl ("BITMAPSIZE", "700x700");
         $handle = pl_newpl($device, stdin, stdout, stderr); # open xwindow display
         pl_selectpl($handle);
         pl_openpl();
         pl_fspace(-$SIZE,-$SIZE, $SIZE, $SIZE); # specify user coord system
         pl_pencolorname ("blue");
         pl_fontname("HersheySerif");
         $s = 10;
         $f = 10;
         $sf = 1- .0012;
         for($i=1;$i<3000;$i++){
            pl_fscale($sf,$sf);
            pl_fbox(60+$s*sin($i/$f),
                 60+$s*sin($i/$f),
                 75-$s*cos($i/$f),
                 75-$s*cos($i/$f));
            pl_frotate(1);
         }
        }
        pl_closepl();
        pl_selectpl(0);
        pl_deletepl($handle);

Exporting Functions

       None of the libplot functions is exported by default. If you do not import any functions you must prepend
       the module name to each function.  To call the pl_openpl() function you would give,

        Graphics::Libplot::pl_openpl();

       However, if you include the library with

        use Graphics::Libplot ':All'

       then all of the functions will be exported, and you do not need to prepend the module name.  In this case
       you need to be careful because there are many function names which may collide with others in your
       program.

       On the other hand you can use one of

        use Graphics::Libplot ':INTEGERLOW'
        use Graphics::Libplot ':FLOATLOW'

       to get just integer or just floating point plotting.

       Be aware that the interface is still under development so more names will be added, and your scripts may
       need to be changed.

Name

       Graphics::Libplot - Perl extension for libplot plotting library

See Also

perl(1).

perl v5.40.0                                       2024-10-20                                       Libplot(3pm)

Synopsis

         use Graphics::Libplot ':All';

See Also