.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" 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 .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "Graph 3pm" .TH Graph 3pm "2018-06-23" "perl v5.26.2" "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" SVG::Graph \- Visualize your data in Scalable Vector Graphics (SVG) format. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& 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\*(Aqs 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 => \e@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(\*(Aqaxis\*(Aq, #add an axis glyph \& \*(Aqx_absolute_ticks\*(Aq => 1, #with ticks every one \& #unit on the x axis \& \*(Aqy_absolute_ticks\*(Aq => 1, #and ticks every one \& #unit on the y axis \& \& \*(Aqstroke\*(Aq => \*(Aqblack\*(Aq, #draw the axis black \& \*(Aqstroke\-width\*(Aq => 2, #and 2px thick \& ); \& \& $frame\->add_glyph(\*(Aqscatter\*(Aq, #add a scatterplot glyph \& \*(Aqstroke\*(Aq => \*(Aqred\*(Aq, #the dots will be outlined \& #in red, \& \*(Aqfill\*(Aq => \*(Aqred\*(Aq, #filled red, \& \*(Aqfill\-opacity\*(Aq => 0.5, #and 50% opaque \& ); \& \& #print the graphic \& print $graph\->draw; .Ve .SH "DESCRIPTION" .IX Header "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: .PP .Vb 12 \& 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 .Ve .PP SVG::Graph 0.02 is a pre-alpha release. Keep in mind that many of the glyphs are not very robust. .SH "PLOTTING" .IX Header "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: .PP .Vb 5 \& \- 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 .Ve .PP See SVG::Graph::Frame and SVG::Graph::Glyph for details. .SS "\s-1ONE DATA SET\s0" .IX Subsection "ONE DATA SET" .Vb 10 \& 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(); .Ve .SS "\s-1MULTIPLE DATA SETS\s0" .IX Subsection "MULTIPLE DATA SETS" .Vb 10 \& 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(); .Ve .SH "FEEDBACK" .IX Header "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 .SH "AUTHORS" .IX Header "AUTHORS" .Vb 2 \& Allen Day, \& Chris To, .Ve .SH "CONTRIBUTORS" .IX Header "CONTRIBUTORS" .Vb 2 \& James Chen, \& Brian O\*(AqConnor, .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1SVG\s0 .SH "METHODS" .IX Header "METHODS" .SS "new" .IX Subsection "new" .Vb 9 \& 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 .Ve .SS "init" .IX Subsection "init" .Vb 6 \& Title : init \& Usage : \& Function: \& Example : \& Returns : \& Args : .Ve .SS "width" .IX Subsection "width" .Vb 6 \& Title : width \& Usage : $obj\->width($newval) \& Function: \& Example : \& Returns : value of width (a scalar) \& Args : on set, new value (a scalar or undef, optional) .Ve .SS "height" .IX Subsection "height" .Vb 6 \& Title : height \& Usage : $obj\->height($newval) \& Function: \& Example : \& Returns : value of height (a scalar) \& Args : on set, new value (a scalar or undef, optional) .Ve .SS "margin" .IX Subsection "margin" .Vb 6 \& Title : margin \& Usage : $obj\->margin($newval) \& Function: \& Example : \& Returns : value of margin (a scalar) \& Args : on set, new value (a scalar or undef, optional) .Ve .SS "svg" .IX Subsection "svg" .Vb 6 \& Title : svg \& Usage : $obj\->svg($newval) \& Function: \& Example : \& Returns : value of svg (a scalar) \& Args : on set, new value (a scalar or undef, optional) .Ve .SS "add_frame" .IX Subsection "add_frame" .Vb 10 \& 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) \& \*(Aqtop\*(Aq default orientation \& \*(Aqbottom\*(Aq rotates graph 180 deg (about the center) \& \*(Aqright\*(Aq points top position towards right \& \*(Aqleft\*(Aq points top position towards left .Ve .SS "frames" .IX Subsection "frames" .Vb 6 \& Title : frames \& Usage : get/set \& Function: \& Example : \& Returns : \& Args : .Ve .SS "xoffset" .IX Subsection "xoffset" .Vb 6 \& Title : xoffset \& Usage : $obj\->xoffset($newval) \& Function: \& Example : \& Returns : value of xoffset (a scalar) \& Args : on set, new value (a scalar or undef, optional) .Ve .SS "yoffset" .IX Subsection "yoffset" .Vb 6 \& Title : yoffset \& Usage : $obj\->yoffset($newval) \& Function: \& Example : \& Returns : value of yoffset (a scalar) \& Args : on set, new value (a scalar or undef, optional) .Ve .SS "draw" .IX Subsection "draw" .Vb 5 \& Title : draw \& Usage : $graph=>draw \& Function: depends on child glyph implementations \& Returns : xmlifyied SVG object \& Args : none .Ve