NAME
SVG::Graph - Visualize your data in Scalable Vector Graphics (SVG) format.
SYNOPSIS
my $graph = SVG::Graph->new( width =>600, height =>600, margin =>30);
my $frame = $graph ->add_frame;
my @data = map {SVG::Graph::Data::Datum->new( x => $_ , y => $_ ^2)}
(1,2,3,4,5);
my $data = SVG::Graph::Data->new( data => \ @data );
$frame ->add_data( $data );
$frame ->add_glyph( 'axis' ,
'x_absolute_ticks' => 1,
'y_absolute_ticks' => 1,
'stroke' => 'black' ,
'stroke-width' => 2,
);
$frame ->add_glyph( 'scatter' ,
'stroke' => 'red' ,
'fill' => 'red' ,
'fill-opacity' => 0.5,
);
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
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
|