$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: jakevoytko_at_[hidden]
Date: 2007-06-25 19:49:57
Author: jakevoytko
Date: 2007-06-25 19:49:57 EDT (Mon, 25 Jun 2007)
New Revision: 7152
URL: http://svn.boost.org/trac/boost/changeset/7152
Log:
Documentation update
Text files modified: 
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.qbk |   135 +++++++-                                
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.xml |   622 +++++++++++++++++++++++++++++++++++++++ 
   2 files changed, 719 insertions(+), 38 deletions(-)
Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.qbk	(original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.qbk	2007-06-25 19:49:57 EDT (Mon, 25 Jun 2007)
@@ -1,6 +1,5 @@
 [article SVG_Plot
     [quickbook 1.4]
-    [version .1]
     [authors [Voytko, Jake]]
     [copyright 2007 Jake Voytko]
     [purpose Plot STL containers onto graphs in SVG format]
@@ -26,22 +25,12 @@
 This page will hold examples of what I have implemented thus far, and what my program will be capable of in the future. More complete documentation will be live in a few days on my personal website. 
 [endsect]
 
-[section:svg_plot_interface SVG_Plot Interface]
-[section:svg_plot_intro Introduction]
-
-The [^svg_plot] class is where I have been spending most of my time recently
-making improvements. The internals are a lot more polished than that of its
-[^svg] ancestor.
-
-[endsect]
-[endsect]
-
 [section:color Colors]
 [section:color_intro Introduction]
 
 svg_plot supports any color definable by the RGB interface, as well as a number of constants that are named by the SVG standard.
 
-[link http://www.w3.org/TR/SVG/types.html#ColorKeywords Here] is a link to the SVG color constants that my program supports
+[@http://www.w3.org/TR/SVG/types.html#ColorKeywords Here] is a link to the SVG color constants that my program supports
 
 [endsect]
 
@@ -66,29 +55,127 @@
 
 ``
 // Using a new RGB value
-my_plot << set_line_color(svg_color(139, 69, 19));
+my_plot.set_line_color(svg_color(139, 69, 19));
 
 // Using an existing RGB value
-my_plot << set_line_color(my_color);
+my_plot.set_line_color(my_color);
 
 // Using a color constant
-my_plot << set_line_color(saddlebrown);
+my_plot.set_line_color(saddlebrown);
 ``
 
 [endsect]
 [endsect]
 
-[section:doc_structure SVG Document Structure]
+[section SVG Public Interface]
+[table class svg
+  [[Signature] [Description]]
+  [[`svg()`] [Constructor]]
+  [[`svg& image_size(unsigned int, unsigned int)`] [Sets the size of the image produced, in pixels]]
+  [[`svg& write(const std::string&)`] [Writes the document to the file represented by the argument]]
+  [[`svg& write(std::ostream&)`] [Writes the document to the stream represented by the argument]]
+  [[`svg& point(double x, double y)`] [Adds a point at (x,y) in the root level of the document]]
+  [[`svg& point(double x, double y, g_element& elem)`] [Adds a point at (x, y) at g_element `elem`]]
+  [[`svg& line(double x1, double y1, double x2, double y2)`] [Adds a line from (x1,y1) to (x2,y2) in the root level of the document]]
+  [[`svg& line(double x1, double y1, double x2, double y2, g_element& elem)`] [Adds a point at (x, y) at g_element `elem`]]
+  [[`svg& text(double x, double y, std::string text)`] [Adds text `text` at (x,y) in the root level of the document]]
+  [[`svg& rect(double x1, double y1, double width, double height)`] [Adds a rectangle at point (x1, y1) that has width `width` and height `height`]]
+  [[`svg& rect(double x1, double y1, double x2, double y2, g_element& elem)`] [Adds a point at (x, y) at g_element `elem`]]]
+[endsect]
+
+[section svg_graph Public Interface]
+[table Misc
+  [[Signature] [Description]]
+[[``
+void plot_range(std::vector<double>::const_iterator begin,
+                std::vector<double>::const_iterator end,
+                std::string text)
+``] [Plots a vector<double> from begin() to end(). It adds the text `text` to the legend. If you are looking for the generic version, you can find it below.]]
+  [[``
+void plot_range(std::vector<double>::const_iterator begin,
+                std::vector<double>::const_iterator end,
+                std::string text,
+                svg_color_constant col)
+``] [Plots a vector<double> from begin() to end(). It adds the text `text` to the legend. The point color for this series is going to be `col`. If you are looking for the generic version, you can find it below.]]
+  [[`svg_plot(const std::string&)`] [Constructor. The string represents a filename]]
+  [[`svg_plot& set_image_size(unsigned int, unsigned int)`] [Sets the size of the image produced, in pixels]]
+  [[`svg_plot& set_title(std::string)`] [Sets the string to be used for the title]]
+  [[`svg_plot& set_title_font_size(unsigned int)`] [Sets the font size for the title]]
+  [[`svg_plot& set_legend_title_font_size(unsigned int)`] [Sets the font size for the legend title]]]
+
+[table Commands
+  [[Signature] [Description]]
+  [[`svg_plot& set_axis(bool)`] [Sets whether the axis is on or off]]
+  [[`svg_plot& set_legend(bool)`] [Sets whether the legend is on or off]]
+  [[`svg_plot& set_plot_window(bool)`] [Sets whether the plot will be displayed in its own window, or will be "full screen" in the image]]
+  [[`svg_plot& set_x_label(bool)`] [Sets whether or not the x axis label will show]]
+  [[`svg_plot& set_x_major_labels(bool)`] [sets whether or not the major ticks will be labelled on the x axis]]]
+
+[table Color Information
+  [[Signature] [Description]]
+  [[`svg_plot& set_title_color(svg_color_constant col)`] [Set the title color]]
+  [[`svg_plot& set_title_color(const svg_color &col)`] [Set the title color]]
+  [[`svg_plot& set_background_color(svg_color_constant col)`] [Set the background color for the whole image]]
+  [[`svg_plot& set_background_color(const svg_color &col)`] [Set the background color for the whole image]]
+  [[`svg_plot& set_legend_background_color(svg_color_constant col)`] [Set the background color for the legend as `col`, a SVG Color Constant]]
+  [[`svg_plot& set_legend_background_color(const svg_color &col)`] [Set the background color for the legend as `col`, an RGB color]]
+  [[`svg_plot& set_plot_background_color(svg_color_constant col)`] [Set the color of the plot area. Note: this only goes into effect if set_plot_area(true) has been called]]
+  [[`svg_plot& set_plot_background_color(const svg_color &col)`] [Set the color of the plot area. Note: this only goes into effect if set_plot_area(true) has been called]]
+  [[`svg_plot& set_x_axis_color(svg_color_constant col)`] [Sets the color of the lines that form the axis]]
+  [[`svg_plot& set_x_axis_color(const svg_color &col)`] [Sets the color of the lines that form the axis]]
+  [[`svg_plot& set_x_major_tick_color(svg_color_constant col)`] [Sets the color of the major ticks of the x-axis]]
+  [[`svg_plot& set_x_major_tick_color(const svg_color &col)`] [Sets the color of the major ticks of the x-axis]]
+  [[`svg_plot& set_x_minor_tick_color(svg_color_constant col)`] [Sets the color of the minor ticks of the x-axis]]
+  [[`svg_plot& set_x_minor_tick_color(const svg_color &col)`] [Sets the color of the minor ticks of the x-axis]]
+  ]
+
+[table Axis Information
+  [[Signature] [Description]]
+  [[`svg_plot& set_x_scale(double x1, double x2)`] [Sets the scale of the x axis from x1 to x2. Throws an exception if x2<=x1 ] ]
+  [[`svg_plot& set_x_axis_width(unsigned int)`] [Sets the stroke width of the x-axis] ]
+  [[`svg_plot& set_x_major_tick(double)`] [Sets the distance (in Cartesian units) between ticks on the x-axis] ]
+  [[`svg_plot& set_x_major_tick_length(int)`] [Sets the length (in pixels) of the x-axis major ticks] ]
+  [[`svg_plot& set_x_minor_tick(unsigned int)`] [Sets the length (in pixels) of the x-axis minor ticks] ]
+  [[`svg_plot& set_x_num_minor_ticks(int)`] [Sets the number of minor ticks between each major tick] ]
+  [[`svg_plot& set_x_label_text(std::string)`] [Sets the label of the x-axis. This does not guarantee that it will be shown. You must run `set_x_label(true)` for that guarantee] ]
+  [[`svg_plot& set_x_major_tick_width(unsigned int)`] [Sets the width (in pixels) of the major ticks on the x-axis] ]
+  [[`svg_plot& set_x_minor_tick_width(unsigned int)`] [Sets the width (in pixels) of the minor ticks on the x-axis] ]
+]
+[endsect]
+
+
+[section:advanced Advanced]
+[h3 Chaining]
 
-In order to more logically manipulate data, the svg document that is produced 
-is now structured in a tree format, with named constants to specific areas 
-that will allow the internals to easily manipulate the document as needed.
+If you would like to make the syntax more concise, the interface supports 
+'chaining'. That is, the following code:
 
-[h3 Labelled image (conceptualization)]
-[~To do: insert image]
+``
+my_plot.set_legend_background_color( whitesmoke );
+my_plot.set_legend_title_color( red );
+``
 
-[h3 Document tree]
-[~To do: insert image]
+can be written as:
 
-[endsect]
+``
+my_plot.set_legend_background_color( whitesmoke )
+       .set_legend_title_color( red );
+``
+
+This is done to allow the user more flexibility in how they group options.
+
+This works because the header for each method is as follows:
+
+``
+svg_plot& svg_plot::set_option(parameter, parameter);
+``
+
+This is identical to the syntax behind chaining `operator=()]` and 
+`operator<<()`.
+
+``
+	int a = b = c = d = 0;
+	cout << "Value a: " << a << endl;
+``
 
+[endsect]
Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.xml
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.xml	(original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.xml	2007-06-25 19:49:57 EDT (Mon, 25 Jun 2007)
@@ -1,17 +1,611 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
-  "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
-<library name="SVG_Plot" dirname="visualization" xmlns:xi="http://www.w3.org/2001/XInclude"
-  id="any" last-revision="$Date: 2007/06/04 23:00:00 $">
-  <libraryinfo>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<article id="svg_plot" name="SVG_Plot" dirname="svg_plot" last-revision="$Date: 2007/06/25 23:44:03 $"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+  <articleinfo>
     <author>
-      <firstname>Jake</firstname>
-      <surname>Voytko</surname>
+      <firstname>Jake</firstname> <surname>Voytko</surname>
     </author>
-    <librarypurpose>
-      Visualize STL data in the SVG format
-    </librarypurpose> 
-    <librarycategory name="category:data-structures"/>
-  </libraryinfo>
-</library>
+    <copyright>
+      <year>2007</year> <holder>Jake Voytko</holder>
+    </copyright>
+    <legalnotice>
+      <para>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at <ulink url="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>)
+      </para>
+    </legalnotice>
+    <articlepurpose>
+      Plot STL containers onto graphs in SVG format
+    </articlepurpose>
+  </articleinfo>
+  <title>SVG_Plot</title>
+  <section id="svg_plot.intro">
+    <title> Introduction</title>
+    <para>
+      This project is focused on using STL containers in order to graph data on a
+      one-dimensional and two-dimensional (and if time allows, 3D!) plot. The plot
+      would be written in an svg image, compliant with the W3C standard. The goals
+      of the project are as follows:
+    </para>
+    <itemizedlist>
+      <listitem>
+        To provide an easy syntax for graphing data
+      </listitem>
+      <listitem>
+        To let users produce a simple plot with minimal intervention by using sane
+        defaults
+      </listitem>
+      <listitem>
+        To demonstrate how to incorporate SVG images into Boost documentation
+      </listitem>
+      <listitem>
+        To allow users to easily customize graphs to their heart's content
+      </listitem>
+      <listitem>
+        To allow the user to talk with the svg_graph class using coordinate units
+        instead of pixels or other arbitrary measures
+      </listitem>
+      <listitem>
+        To create the backbone of a svg class that will be extended to fully support
+        storing the standard
+      </listitem>
+    </itemizedlist>
+    <para>
+      I have only a student's grasp of C++, so if you have a suggestion to help me
+      with design or implementation, either leave them here or email me at jakevoytko
+      (at) gmail (dot) com
+    </para>
+    <para>
+      This page will hold examples of what I have implemented thus far, and what
+      my program will be capable of in the future. More complete documentation will
+      be live in a few days on my personal website.
+    </para>
+  </section>
+  <section id="svg_plot.color">
+    <title> Colors</title>
+    <section id="svg_plot.color.color_intro">
+      <title> Introduction</title>
+      <para>
+        svg_plot supports any color definable by the RGB interface, as well as a
+        number of constants that are named by the SVG standard.
+      </para>
+      <para>
+        <ulink url="http://www.w3.org/TR/SVG/types.html#ColorKeywords">Here</ulink>
+        is a link to the SVG color constants that my program supports
+      </para>
+    </section>
+    <section id="svg_plot.color.color_internals">
+      <title> Internals and Rationale</title>
+      <para>
+        All color information is stored in RGB format in a svg_struct. The rationale
+        for storing information in RGB format is because it is precise and is always
+        representable the exact same way. Storing as a floating point percentage
+        introduces the possibility of rounding error, which I would like to avoid
+        at all costs, so that the same image file displays the same way on any system
+        that correctly implements the SVG format.
+      </para>
+      <para>
+        Constants are defined in an enum, svg_color_constant, in alphabetical order.
+        This facilitates quick lookup of their RGB values quickly in an array.
+      </para>
+    </section>
+    <section id="svg_plot.color.color_usage">
+      <title> Usage</title>
+      <para>
+        To use an example, set_line_color(), here are the two different ways we could
+        set the line color, one using RGB values, and the other using the constant.
+      </para>
+      <para>
+        
+<programlisting>
+<phrase role="comment">// Using a new RGB value
+</phrase><phrase role="identifier">my_plot</phrase><phrase role="special">.</phrase><phrase role="identifier">set_line_color</phrase><phrase role="special">(</phrase><phrase role="identifier">svg_color</phrase><phrase role="special">(</phrase><phrase role="number">139</phrase><phrase role="special">,</phrase> <phrase role="number">69</phrase><phrase role="special">,</phrase> <phrase role="number">19</phrase><phrase role="special">));</phrase>
 
+<phrase role="comment">// Using an existing RGB value
+</phrase><phrase role="identifier">my_plot</phrase><phrase role="special">.</phrase><phrase role="identifier">set_line_color</phrase><phrase role="special">(</phrase><phrase role="identifier">my_color</phrase><phrase role="special">);</phrase>
+
+<phrase role="comment">// Using a color constant
+</phrase><phrase role="identifier">my_plot</phrase><phrase role="special">.</phrase><phrase role="identifier">set_line_color</phrase><phrase role="special">(</phrase><phrase role="identifier">saddlebrown</phrase><phrase role="special">);</phrase>
+</programlisting>
+      </para>
+    </section>
+  </section>
+  <section id="svg_plot.svg_public_interface">
+    <title>SVG Public Interface</title>
+    <informaltable frame="all">
+      <bridgehead renderas="sect4">
+        <phrase role="table-title">class svg</phrase>
+      </bridgehead>
+      <tgroup cols="2">
+        <thead>
+          <row>
+            <entry>Signature</entry><entry>Description</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">()</phrase></code></entry><entry>Constructor</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">image_size</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">unsigned</phrase> <phrase role="keyword">int</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">unsigned</phrase> <phrase
+            role="keyword">int</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            the size of the image produced, in pixels</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">write</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">const</phrase> <phrase role="identifier">std</phrase><phrase
+            role="special">::</phrase><phrase role="identifier">string</phrase><phrase
+            role="special">&)</phrase></code></entry><entry>Writes the document
+            to the file represented by the argument</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">write</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">std</phrase><phrase role="special">::</phrase><phrase
+            role="identifier">ostream</phrase><phrase role="special">&)</phrase></code></entry><entry>Writes
+            the document to the stream represented by the argument</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">point</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">double</phrase> <phrase role="identifier">x</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y</phrase><phrase role="special">)</phrase></code></entry><entry>Adds
+            a point at (x,y) in the root level of the document</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">point</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">double</phrase> <phrase role="identifier">x</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y</phrase><phrase role="special">,</phrase> <phrase
+            role="identifier">g_element</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">elem</phrase><phrase role="special">)</phrase></code></entry><entry>Adds
+            a point at (x, y) at g_element <code><phrase role="identifier">elem</phrase></code></entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">line</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">double</phrase> <phrase role="identifier">x1</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y1</phrase><phrase role="special">,</phrase> <phrase
+            role="keyword">double</phrase> <phrase role="identifier">x2</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y2</phrase><phrase role="special">)</phrase></code></entry><entry>Adds
+            a line from (x1,y1) to (x2,y2) in the root level of the document</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">line</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">double</phrase> <phrase role="identifier">x1</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y1</phrase><phrase role="special">,</phrase> <phrase
+            role="keyword">double</phrase> <phrase role="identifier">x2</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y2</phrase><phrase role="special">,</phrase> <phrase
+            role="identifier">g_element</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">elem</phrase><phrase role="special">)</phrase></code></entry><entry>Adds
+            a point at (x, y) at g_element <code><phrase role="identifier">elem</phrase></code></entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">text</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">double</phrase> <phrase role="identifier">x</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y</phrase><phrase role="special">,</phrase> <phrase
+            role="identifier">std</phrase><phrase role="special">::</phrase><phrase
+            role="identifier">string</phrase> <phrase role="identifier">text</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Adds text <code><phrase
+            role="identifier">text</phrase></code> at (x,y) in the root level of
+            the document</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">rect</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">double</phrase> <phrase role="identifier">x1</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y1</phrase><phrase role="special">,</phrase> <phrase
+            role="keyword">double</phrase> <phrase role="identifier">width</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">height</phrase><phrase role="special">)</phrase></code></entry><entry>Adds
+            a rectangle at point (x1, y1) that has width <code><phrase role="identifier">width</phrase></code>
+            and height <code><phrase role="identifier">height</phrase></code></entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">rect</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">double</phrase> <phrase role="identifier">x1</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y1</phrase><phrase role="special">,</phrase> <phrase
+            role="keyword">double</phrase> <phrase role="identifier">x2</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">y2</phrase><phrase role="special">,</phrase> <phrase
+            role="identifier">g_element</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">elem</phrase><phrase role="special">)</phrase></code></entry><entry>Adds
+            a point at (x, y) at g_element <code><phrase role="identifier">elem</phrase></code></entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </informaltable>
+  </section>
+  <section id="svg_plot.svg_graph_public_interface">
+    <title>svg_graph Public Interface</title>
+    <informaltable frame="all">
+      <bridgehead renderas="sect4">
+        <phrase role="table-title">Misc</phrase>
+      </bridgehead>
+      <tgroup cols="2">
+        <thead>
+          <row>
+            <entry>Signature</entry><entry>Description</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>
+<programlisting>
+<phrase role="keyword">void</phrase> <phrase role="identifier">plot_range</phrase><phrase role="special">(</phrase><phrase role="identifier">std</phrase><phrase role="special">::</phrase><phrase role="identifier">vector</phrase><phrase role="special"><</phrase><phrase role="keyword">double</phrase><phrase role="special">>::</phrase><phrase role="identifier">const_iterator</phrase> <phrase role="identifier">begin</phrase><phrase role="special">,</phrase>
+                <phrase role="identifier">std</phrase><phrase role="special">::</phrase><phrase role="identifier">vector</phrase><phrase role="special"><</phrase><phrase role="keyword">double</phrase><phrase role="special">>::</phrase><phrase role="identifier">const_iterator</phrase> <phrase role="identifier">end</phrase><phrase role="special">,</phrase>
+                <phrase role="identifier">std</phrase><phrase role="special">::</phrase><phrase role="identifier">string</phrase> <phrase role="identifier">text</phrase><phrase role="special">)</phrase>
+</programlisting>
+            </entry><entry>Plots a vector<double> from begin() to end(). It
+            adds the text <code><phrase role="identifier">text</phrase></code> to
+            the legend. If you are looking for the generic version, you can find
+            it below.</entry>
+          </row>
+          <row>
+            <entry>
+<programlisting>
+<phrase role="keyword">void</phrase> <phrase role="identifier">plot_range</phrase><phrase role="special">(</phrase><phrase role="identifier">std</phrase><phrase role="special">::</phrase><phrase role="identifier">vector</phrase><phrase role="special"><</phrase><phrase role="keyword">double</phrase><phrase role="special">>::</phrase><phrase role="identifier">const_iterator</phrase> <phrase role="identifier">begin</phrase><phrase role="special">,</phrase>
+                <phrase role="identifier">std</phrase><phrase role="special">::</phrase><phrase role="identifier">vector</phrase><phrase role="special"><</phrase><phrase role="keyword">double</phrase><phrase role="special">>::</phrase><phrase role="identifier">const_iterator</phrase> <phrase role="identifier">end</phrase><phrase role="special">,</phrase>
+                <phrase role="identifier">std</phrase><phrase role="special">::</phrase><phrase role="identifier">string</phrase> <phrase role="identifier">text</phrase><phrase role="special">,</phrase>
+                <phrase role="identifier">svg_color_constant</phrase> <phrase role="identifier">col</phrase><phrase role="special">)</phrase>
+</programlisting>
+            </entry><entry>Plots a vector<double> from begin() to end(). It
+            adds the text <code><phrase role="identifier">text</phrase></code> to
+            the legend. The point color for this series is going to be <code><phrase
+            role="identifier">col</phrase></code>. If you are looking for the generic
+            version, you can find it below.</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">const</phrase> <phrase role="identifier">std</phrase><phrase
+            role="special">::</phrase><phrase role="identifier">string</phrase><phrase
+            role="special">&)</phrase></code></entry><entry>Constructor. The
+            string represents a filename</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_image_size</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">unsigned</phrase> <phrase role="keyword">int</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">unsigned</phrase> <phrase
+            role="keyword">int</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            the size of the image produced, in pixels</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_title</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">std</phrase><phrase role="special">::</phrase><phrase
+            role="identifier">string</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            the string to be used for the title</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_title_font_size</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">unsigned</phrase> <phrase role="keyword">int</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the font size for
+            the title</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_legend_title_font_size</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">unsigned</phrase> <phrase role="keyword">int</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the font size for
+            the legend title</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </informaltable>
+    <informaltable frame="all">
+      <bridgehead renderas="sect4">
+        <phrase role="table-title">Commands</phrase>
+      </bridgehead>
+      <tgroup cols="2">
+        <thead>
+          <row>
+            <entry>Signature</entry><entry>Description</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_axis</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">bool</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            whether the axis is on or off</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_legend</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">bool</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            whether the legend is on or off</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_plot_window</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">bool</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            whether the plot will be displayed in its own window, or will be "full
+            screen" in the image</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_label</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">bool</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            whether or not the x axis label will show</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_major_labels</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">bool</phrase><phrase role="special">)</phrase></code></entry><entry>sets
+            whether or not the major ticks will be labelled on the x axis</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </informaltable>
+    <informaltable frame="all">
+      <bridgehead renderas="sect4">
+        <phrase role="table-title">Color Information</phrase>
+      </bridgehead>
+      <tgroup cols="2">
+        <thead>
+          <row>
+            <entry>Signature</entry><entry>Description</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_title_color</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">svg_color_constant</phrase> <phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Set the title color</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_title_color</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">const</phrase> <phrase role="identifier">svg_color</phrase> <phrase
+            role="special">&</phrase><phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Set the title color</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_background_color</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">svg_color_constant</phrase> <phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Set the background color
+            for the whole image</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_background_color</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">const</phrase> <phrase role="identifier">svg_color</phrase> <phrase
+            role="special">&</phrase><phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Set the background color
+            for the whole image</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_legend_background_color</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">svg_color_constant</phrase> <phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Set the background color
+            for the legend as <code><phrase role="identifier">col</phrase></code>,
+            a SVG Color Constant</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_legend_background_color</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">const</phrase> <phrase role="identifier">svg_color</phrase> <phrase
+            role="special">&</phrase><phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Set the background color
+            for the legend as <code><phrase role="identifier">col</phrase></code>,
+            an RGB color</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_plot_background_color</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">svg_color_constant</phrase> <phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Set the color of the plot
+            area. Note: this only goes into effect if set_plot_area(true) has been
+            called</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_plot_background_color</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">const</phrase> <phrase role="identifier">svg_color</phrase> <phrase
+            role="special">&</phrase><phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Set the color of the plot
+            area. Note: this only goes into effect if set_plot_area(true) has been
+            called</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_axis_color</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">svg_color_constant</phrase> <phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the color of the
+            lines that form the axis</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_axis_color</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">const</phrase> <phrase role="identifier">svg_color</phrase> <phrase
+            role="special">&</phrase><phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the color of the
+            lines that form the axis</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_major_tick_color</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">svg_color_constant</phrase> <phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the color of the
+            major ticks of the x-axis</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_major_tick_color</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">const</phrase> <phrase role="identifier">svg_color</phrase> <phrase
+            role="special">&</phrase><phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the color of the
+            major ticks of the x-axis</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_minor_tick_color</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">svg_color_constant</phrase> <phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the color of the
+            minor ticks of the x-axis</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_minor_tick_color</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">const</phrase> <phrase role="identifier">svg_color</phrase> <phrase
+            role="special">&</phrase><phrase role="identifier">col</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the color of the
+            minor ticks of the x-axis</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </informaltable>
+    <informaltable frame="all">
+      <bridgehead renderas="sect4">
+        <phrase role="table-title">Axis Information</phrase>
+      </bridgehead>
+      <tgroup cols="2">
+        <thead>
+          <row>
+            <entry>Signature</entry><entry>Description</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_scale</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">double</phrase> <phrase role="identifier">x1</phrase><phrase
+            role="special">,</phrase> <phrase role="keyword">double</phrase> <phrase
+            role="identifier">x2</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            the scale of the x axis from x1 to x2. Throws an exception if x2<=x1
+            </entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_axis_width</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">unsigned</phrase> <phrase role="keyword">int</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the stroke width
+            of the x-axis</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_major_tick</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">double</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            the distance (in Cartesian units) between ticks on the x-axis</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_major_tick_length</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">int</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            the length (in pixels) of the x-axis major ticks</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_minor_tick</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">unsigned</phrase> <phrase role="keyword">int</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the length (in pixels)
+            of the x-axis minor ticks</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_num_minor_ticks</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">int</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            the number of minor ticks between each major tick</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_label_text</phrase><phrase role="special">(</phrase><phrase
+            role="identifier">std</phrase><phrase role="special">::</phrase><phrase
+            role="identifier">string</phrase><phrase role="special">)</phrase></code></entry><entry>Sets
+            the label of the x-axis. This does not guarantee that it will be shown.
+            You must run <code><phrase role="identifier">set_x_label</phrase><phrase
+            role="special">(</phrase><phrase role="keyword">true</phrase><phrase
+            role="special">)</phrase></code> for that guarantee</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_major_tick_width</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">unsigned</phrase> <phrase role="keyword">int</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the width (in pixels)
+            of the major ticks on the x-axis</entry>
+          </row>
+          <row>
+            <entry><code><phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase
+            role="identifier">set_x_minor_tick_width</phrase><phrase role="special">(</phrase><phrase
+            role="keyword">unsigned</phrase> <phrase role="keyword">int</phrase><phrase
+            role="special">)</phrase></code></entry><entry>Sets the width (in pixels)
+            of the minor ticks on the x-axis</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </informaltable>
+  </section>
+  <section id="svg_plot.advanced">
+    <title> Advanced</title> <anchor id="svg_plot.advanced.chaining" />
+    <bridgehead renderas="sect3">
+      Chaining
+    </bridgehead>
+    <para>
+      If you would like to make the syntax more concise, the interface supports 'chaining'.
+      That is, the following code:
+    </para>
+    <para>
+      
+<programlisting>
+<phrase role="identifier">my_plot</phrase><phrase role="special">.</phrase><phrase role="identifier">set_legend_background_color</phrase><phrase role="special">(</phrase> <phrase role="identifier">whitesmoke</phrase> <phrase role="special">);</phrase>
+<phrase role="identifier">my_plot</phrase><phrase role="special">.</phrase><phrase role="identifier">set_legend_title_color</phrase><phrase role="special">(</phrase> <phrase role="identifier">red</phrase> <phrase role="special">);</phrase>
+</programlisting>
+    </para>
+    <para>
+      can be written as:
+    </para>
+    <para>
+      
+<programlisting>
+<phrase role="identifier">my_plot</phrase><phrase role="special">.</phrase><phrase role="identifier">set_legend_background_color</phrase><phrase role="special">(</phrase> <phrase role="identifier">whitesmoke</phrase> <phrase role="special">)</phrase>
+       <phrase role="special">.</phrase><phrase role="identifier">set_legend_title_color</phrase><phrase role="special">(</phrase> <phrase role="identifier">red</phrase> <phrase role="special">);</phrase>
+</programlisting>
+    </para>
+    <para>
+      This is done to allow the user more flexibility in how they group options.
+    </para>
+    <para>
+      This works because the header for each method is as follows:
+    </para>
+    <para>
+      
+<programlisting>
+<phrase role="identifier">svg_plot</phrase><phrase role="special">&</phrase> <phrase role="identifier">svg_plot</phrase><phrase role="special">::</phrase><phrase role="identifier">set_option</phrase><phrase role="special">(</phrase><phrase role="identifier">parameter</phrase><phrase role="special">,</phrase> <phrase role="identifier">parameter</phrase><phrase role="special">);</phrase>
+</programlisting>
+    </para>
+    <para>
+      This is identical to the syntax behind chaining <code><phrase role="keyword">operator</phrase><phrase
+      role="special">=()]</phrase></code> and <code><phrase role="keyword">operator</phrase><phrase
+      role="special"><<()</phrase></code>.
+    </para>
+    <para>
+      
+<programlisting>
+<phrase role="keyword">int</phrase> <phrase role="identifier">a</phrase> <phrase role="special">=</phrase> <phrase role="identifier">b</phrase> <phrase role="special">=</phrase> <phrase role="identifier">c</phrase> <phrase role="special">=</phrase> <phrase role="identifier">d</phrase> <phrase role="special">=</phrase> <phrase role="number">0</phrase><phrase role="special">;</phrase>
+<phrase role="identifier">cout</phrase> <phrase role="special"><<</phrase> <phrase role="string">"Value a: "</phrase> <phrase role="special"><<</phrase> <phrase role="identifier">a</phrase> <phrase role="special"><<</phrase> <phrase role="identifier">endl</phrase><phrase role="special">;</phrase>
+</programlisting>
+    </para>
+  </section>
+</article>