PHP Tree Graph Ext is a PHP package that can be used to render graphical diagrams of hierarchical trees of nodes. Each node may be associated with a title, text, an image, and a desired width and height that it will occupy in the tree's graphical diagram. The colors of the image background, node, node links, and node texts are configurable. The node link style, node text font, and node border width can also be configured. The user can also choose which node will be the root, such that all nodes that aren't a descendant of the root won't be shown. License: GNU Lesser General Public License (LGPL) Changes:
The ability to set the title of the node was added. The ability to insert nodes without any order was added. The ability to choose which node will be the root was added.
Graph(3pm) User Contributed Perl Documentation Graph(3pm)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
perl v5.10.0 2009-01-07 Graph(3pm)