Provided by: libsvg-graph-perl_0.02-4_all bug

NAME

       SVG::Graph - Visualize your data in Scalable Vector Graphics (SVG) format.

SYNOPSIS

         use SVG::Graph;
         use SVG::Graph::Data;
         use SVG::Graph::Data::Datum;

         #create a new SVG document to plot in...
         my $graph = SVG::Graph->new(width=>600,height=>600,margin=>30);

         #and create a frame to hold the data/glyphs
         my $frame = $graph->add_frame;

         #let's plot y = x^2
         my @data = map {SVG::Graph::Data::Datum->new(x=>$_,y=>$_^2)}
                        (1,2,3,4,5);
         my $data = SVG::Graph::Data->new(data => \@data);

         #put the xy data into the frame
         $frame->add_data($data);

         #add some glyphs to apply to the data in the frame
         $frame->add_glyph('axis',        #add an axis glyph
           'x_absolute_ticks' => 1,       #with ticks every one
                                          #unit on the x axis
           'y_absolute_ticks' => 1,       #and ticks every one
                                          #unit on the y axis

           'stroke'           => 'black', #draw the axis black
           'stroke-width'     => 2,       #and 2px thick
         );

         $frame->add_glyph('scatter',     #add a scatterplot glyph
           'stroke' => 'red',             #the dots will be outlined
                                          #in red,
           'fill'   => 'red',             #filled red,
           'fill-opacity' => 0.5,         #and 50% opaque
         );

         #print the graphic
         print $graph->draw;

DESCRIPTION

       SVG::Graph is a suite of perl modules for plotting data.  SVG::Graph currently supports
       plots of one-, two- and three-dimensional data, as well as N-ary rooted trees.  Data may
       be represented as:

        Glyph Name     Dimensionality supported
                       1d      2d      3d      tree
        --------------------------------------------------------
        Axis                           x
        Bar Graph              x
        Bubble Plot                    x
        Heatmap Graph                  x
        Line Graph             x
        Pie Graph      x
        Scatter Plot           x
        Spline Graph           x
        Tree                                   x

       SVG::Graph 0.02 is a pre-alpha release. Keep in mind that many of the glyphs are not very
       robust.

PLOTTING

       You need to create a SVG::Graph::Frame instance from the parent SVG::Graph instance for
       each set of data to be plotted.  Datasets can be hierarchical, and to represent this,
       SVG::Graph::Frame instances can themselves contain subframes.  SVG::Graph::Frame can
       contain:

        - multiple subframes as instances of SVG::Graph::Frame
        - a single SVG::Graph::Data instance
        - multiple SVG::Graph::Glyph instances with which to render
          the attached SVG::Graph::Data instance, and all SVG::Graph::Data
          instances attached to SVG::Graph::Frame subinstances

       See SVG::Graph::Frame and SVG::Graph::Glyph for details.

   ONE DATA SET
        1. create an SVG::Graph instance
        2. create an SVG::Graph::Frame instance by calling
           SVG::Graph::add_frame();
        3. create an SVG::Graph::Data instance, containing
           an SVG::Graph::Data::Datum instance for each data point.
        4. Attach the SVG::Graph::Data instance to your SVG::Graph::Frame
           using SVG::Graph::Frame::add_data();
        5. Attach glyphs to the SVG::Graph::Frame instance using
           SVG::Graph::Frame::add_glyph();
        6. Call SVG::Graph::draw();

   MULTIPLE DATA SETS
        1. create an SVG::Graph instance
        2. create an SVG::Graph::Frame instance by calling
           SVG::Graph::add_frame();
        3. create an SVG::Graph::Data instance, containing
           an SVG::Graph::Data::Datum instance for each data point.
        4. Attach the SVG::Graph::Data instance to your SVG::Graph::Frame
           using SVG::Graph::Frame::add_data();
        5. Attach glyphs to the SVG::Graph::Frame instance using
           SVG::Graph::Frame::add_glyph();
        6. repeat [2-5] for each additional data set to be added.
           add_frame() can be called on SVG::Graph to add top-level data
           sets, or SVG::Graph::Frame to add hierarchical data sets.
        7. Call SVG::Graph::draw();

FEEDBACK

       Send an email to the svg-graph-developers list.  For more info, visit the project page at
       http://www.sf.net/projects/svg-graph

AUTHORS

        Allen Day,      <allenday@ucla.edu>
        Chris To,       <crsto@ucla.edu>

CONTRIBUTORS

        James Chen,     <chenj@seas.ucla.edu>
        Brian O'Connor, <boconnor@ucla.edu>

SEE ALSO

       SVG

METHODS

   new
        Title   : new
        Usage   : my $graph = SVG::Graph->new(width=>600,
                                              height=>600,
                                              margin=>20);
        Function: creates a new SVG::Graph object
        Returns : a SVG::Graph object
        Args    : width => the width of the SVG
                  height => the height of the SVG
                  margin => margin for the root frame

   init
        Title   : init
        Usage   :
        Function:
        Example :
        Returns :
        Args    :

   width
        Title   : width
        Usage   : $obj->width($newval)
        Function:
        Example :
        Returns : value of width (a scalar)
        Args    : on set, new value (a scalar or undef, optional)

   height
        Title   : height
        Usage   : $obj->height($newval)
        Function:
        Example :
        Returns : value of height (a scalar)
        Args    : on set, new value (a scalar or undef, optional)

   margin
        Title   : margin
        Usage   : $obj->margin($newval)
        Function:
        Example :
        Returns : value of margin (a scalar)
        Args    : on set, new value (a scalar or undef, optional)

   svg
        Title   : svg
        Usage   : $obj->svg($newval)
        Function:
        Example :
        Returns : value of svg (a scalar)
        Args    : on set, new value (a scalar or undef, optional)

   add_frame
        Title   : add_frame
        Usage   : my $frame = $graph->add_frame
        Function: adds a Frame to the current Graph
        Returns : a SVG::Graph::Frame object
        Args    : a hash.  usable keys:
                    frame_transform (optional)
                      'top' default orientation
                      'bottom' rotates graph 180 deg (about the center)
                      'right' points top position towards right
                      'left' points top position towards left

   frames
        Title   : frames
        Usage   : get/set
        Function:
        Example :
        Returns :
        Args    :

   xoffset
        Title   : xoffset
        Usage   : $obj->xoffset($newval)
        Function:
        Example :
        Returns : value of xoffset (a scalar)
        Args    : on set, new value (a scalar or undef, optional)

   yoffset
        Title   : yoffset
        Usage   : $obj->yoffset($newval)
        Function:
        Example :
        Returns : value of yoffset (a scalar)
        Args    : on set, new value (a scalar or undef, optional)

   draw
        Title   : draw
        Usage   : $graph=>draw
        Function: depends on child glyph implementations
        Returns : xmlifyied SVG object
        Args    : none