Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r52012 - in sandbox/SOC/2007/visualization/libs/svg_plot/doc: . html
From: pbristow_at_[hidden]
Date: 2009-03-27 08:58:18


Author: pbristow
Date: 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
New Revision: 52012
URL: http://svn.boost.org/trac/boost/changeset/52012

Log:
Yet more doc correctins and updates.
Text files modified:
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/1d_tutorial.qbk | 352 ++++++++++++++++++++++++++++++++++++++-
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/2d_tutorial.qbk | 355 +++++++++++++++++++++++++++++++++++++++
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/Jamfile.v2 | 2
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/behavior_tutorial.qbk | 11
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/boxplot_tutorial.qbk | 2
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/demo_1d_autoscaling.qbk | 2
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/html/index.html | 69 +++----
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/interface.qbk | 23 -
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/rationale.qbk | 57 ++---
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_interface.qbk | 12
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_plot.qbk | 32 ++-
   sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_tutorial.qbk | 2
   12 files changed, 783 insertions(+), 136 deletions(-)

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/1d_tutorial.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/1d_tutorial.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/1d_tutorial.qbk 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -1,19 +1,351 @@
 [section:tutorial_1d 1D Tutorials]
 
-[include 1d_vector_tutorial.qbk]
-[include demo_1d_containers.qbk]
-[include auto_1d_containers.qbk]
-[include 1d_full_tutorial.qbk]
-[include 1d_special_tutorial.qbk]
-[include demo_1d_axis_scaling.qbk]
-[include demo_1d_autoscaling.qbk]
-[include demo_1d_values.qbk]
+This section gives examples of plotting 1-dimensional data held in, for example, in an array or vector.
+
+[/include 1d_vector_tutorial.qbk]
+[section:1d_vector_tutorial 1-D Vector Example]
+
+[import ..\example\demo_1d_vector.cpp] [/QuickBook in C++]
+[demo_1d_vector_1]
+[demo_1d_vector_2]
+
+The IDE output is not very exciting in this case
+[demo_1d_vector_output]
+but the plot is
+[$images/demo_1d_vector.svg]
+
+(You can also view the SVG XML source using browsers (View, Source)
+or use your favorite text editor like Notepad, TextPad etc at
+[@/images/demo_1d_vector.svg demo_1d_vector.svg]
+
+See [@../../example/demo_1d_vector.cpp demo_1d_vector.cpp]
+for full source code.
+
+[endsect] [/section:1d_vector_tutorial.qbk 1-D Vector Example.]
+
+[/include demo_1d_containers.qbk]
+[section:demo_1d_containers_tutorial 1-D STL Containers Examples]
+
+[import ..\example\demo_1d_containers.cpp]
+[demo_1d_containers_1]
+[demo_1d_containers_2]
+[demo_1d_containers_3]
+[demo_1d_containers_4]
+[demo_1d_containers_5]
+[demo_1d_containers_6]
+
+[note For filling STL containers you may find the __Boost_Assign library by Thorsten Ottosen useful.]
+
+The IDE output is not very exciting in this case:
+[demo_1d_containers_output]
+
+The plot is:
+
+[$images\demo_1d_vector_float.svg]
+
+And you can view the other svg files (with most internet browsers, and other programs too) for example:
+
+* [@\images\demo_1d_array_long_double.svg demo_1d_array_long_double.svg]
+
+* [@\images\demo_1d_set_double.svg demo_1d_set_double.svg]
+
+* [@\images\demo_1d_list_double.svg demo_1d_list_double.svg]
+
+* [@\images\demo_1d_deque_double.svg demo_1d_deque_double.svg]
+
+See [@../../example/demo_1d_containers.cpp demo_1d_containers.cpp]
+for full source code.
+[endsect] [/section:demo_1d_containers_tutorial 1-D Containers Examples]
+
+[/include 1d_autoscale_containers.qbk]
+[section:1d_autoscale_containers Tutorial: 1D Autoscale with Multiple Containers]
+
+This example demonstrates autoscaling with *multiple* STL containers.
+
+[import ../example/auto_1d_containers.cpp]
+
+[auto_1d_containers_1]
+[auto_1d_containers_2]
+
+[warning The containers must be of the same type to use the function range_all.
+If different types of containers, for example some in a set and some in a vector,
+then the min and max for each container must be computed separately
+and the minimum of the minimums and the maximum of the maximums injected into the
+x_autoscale (and/or y_autoscale) call.]
+
+Typical output is:
+[auto_1d_containers_output]
+
+See [@../../example/auto_1d_containers.cpp auto_1d_containers.cpp]
+for full source code and sample output.
+
+[endsect] [/ section:1d_autoscale_containers Tutorial: 1D Autoscale with Multiple Containers]
+
+[/include 1d_full_tutorial.qbk]
+[section:full_1d_layout Tutorial: 1D More Layout Examples]
+
+This section showsa few more of the near infinite layout options.
+See also the reference section and function index.
+
+ #include <boost/svg_plot/svg_1d_plot.hpp>
+ using namespace boost::svg;
+ #include <cmath> // for sqrt
+
+ #include <vector>
+ #include <deque>
+ #include <boost/array.hpp>
+
+ // Three different STL-style containers:
+ using std::vector;
+ using std::deque;
+ using boost::array;
+
+ // Three sample functions:
+ double f(double x)
+ {
+ return sqrt(x);
+ }
+
+ double g(double x)
+ {
+ return -2 + x*x;
+ }
+
+ double h(double x)
+ {
+ return -1 + 2*x;
+ }
+
+ int main()
+ {
+ vector<double> data1;
+ deque<double> data2;
+ boost::array<double, 10> data3;
+ // Fill the containers with some data using the functions:
+ int j=0;
+ for(double i=0; i<9.5; i+=1.)
+ {
+ data1.push_back(f(i));
+ data2.push_front(g(i));
+ data3[j++] = h(i);
+ }
+
+ svg_1d_plot my_plot; // Construct my_plot.
+
+ // Set many plot options,
+ // using chaining to group similar aspects together.
+ // Size/scale settings.
+ my_plot.image_size(500, 350)
+ .x_range(-3, 10);
+
+ // Text settings.
+ my_plot.title("Oh My!")
+ .title_font_size(29)
+ .x_label("Time in Months") // X- axis label
+ .x_label_on(true); // Not needed, because although the default is no axis label,
+ // providing a label has this effect.
+ // If we want later to switch *off* labels,
+ // my_plot.x_label_on(false); // is needed.
+
+ // Commands.
+ my_plot.legend_on(true)
+ .plot_window_on(true)
+ .x_major_labels_on(true);
+
+ // Color settings.
+ my_plot.background_color(svg_color(67, 111, 69))
+ .legend_background_color(svg_color(207, 202,167))
+ .legend_border_color(svg_color(102, 102, 84))
+ .plot_background_color(svg_color(136, 188, 126))
+ .title_color(white);
+
+ // Axis settings.
+ my_plot.x_major_interval(2)
+ .x_major_tick_length(14)
+ .x_major_tick_width(1)
+ .x_minor_tick_length(7)
+ .x_minor_tick_width(1)
+ .x_num_minor_ticks(3);
+
+ // Legend settings.
+ my_plot.legend_title_font_size(15);
+
+ // Put the three containers of data onto the plot.
+ my_plot.plot(data1, "Lions", blue);
+ my_plot.plot(data2, "Tigers", orange);
+ my_plot.plot(data3, "Bears", red);
+
+ my_plot.write("1d_full_layout.svg");
+
+ return 0;
+ } // int main()
+
+This produces the following plot:
+[$images/1d_full_layout.svg]
+
+A little bit of color customization goes a *very* long way!
+[endsect] [/section:full_1d_layout Tutorial: 1D More Layout Examples]
+
+[/include 1d_special_tutorial.qbk]
+[section:1d_special Tutorial: 1D Gridlines & Axes - more examples]
+
+It is possible to change the location of the intersection of the axes,
+and the labelling - at the top, bottom or in the middle on the Y axis.
+This is controlled using the `enum x_axis_intersect` and function
+`x_ticks_on_window_or_axis`.
+
+[import ..\example\demo_1d_x_external.cpp]
+
+[demo_1d_x_external_1]
 
-[endsect] [/section:tutorial_1d 1D Tutorials]
 
+[h4 X-Axis Grid Lines]
 
+If you would like vertical grid lines that go on the graph,
+you can make the following call to `svg_1d_plot`:
+
+ my_plot.x_major_grid_on(true)
+ .x_minor_grid_on(true);
+
+To color style it, you might add the following calls:
+
+ my_plot.x_major_grid_color(lightgray) // Darker color for major grid.
+ .x_minor_grid_color(whitesmoke); // Lighter color for minor grid.
+
+This will produce the following image:
+[$images/1d_x_grid.svg]
+
+[h4 X-Axis ticks and tick value label position]
+
+[demo_1d_x_external_1]
+producing this plot
+[$images/demo_1d_x_external.svg]
+
+See [@../../example/demo_1d_x_external.cpp demo_1d_x_external.cpp]
+for full source code.
+[endsect] [/section:1d_special Tutorial: 1D Gridlines & Axes]
+
+[/include demo_1d_axis_scaling.qbk]
+[section:demo_1d_axis_scaling 1-D Axis Scaling]
+
+[h4 Axis scaling with function scale_axis]
+
+[import ..\example\demo_1d_axis_scaling.cpp]
+
+[demo_1d_axis_scaling_1]
+[demo_1d_axis_scaling_2]
+[demo_1d_axis_scaling_3]
+
+[h4 scale_axis Function Examples]
+
+[demo_1d_axis_scaling_4]
+[demo_1d_axis_scaling_5]
+
+The output is:
+[demo_1d_axis_scaling_output]
+
+See [@../../example/demo_1d_axis_scaling.cpp demo_1d_axis_scaling.cpp]
+for full source code.
+
+[endsect] [/section:demo_1d_axis_scaling 1-D Axis Scaling]
+
+[/include demo_1d_autoscaling.qbk]
+[section:auto_1d_plot 1-D Auto scaling Examples]
+
+[import ..\example\auto_1d_plot.cpp]
+[auto_1d_plot_1]
+[auto_1d_plot_2]
+[auto_1d_plot_3]
+
+The output is:
+[auto_1d_plot_output]
+
+[$images/auto_1d_plot.svg]
+
+See [@../../example/auto_1d_plot.cpp auto_1d_plot.cpp]
+for full source code.
+[endsect] [/section:auto_1d_plot 1-D Auto scaling Examples]
+
+[section:demo_1d_autoscaling 1-D Autoscaling Various Containers Examples]
+[import ../example/demo_1d_autoscaling.cpp]
+
+[demo_1d_autoscaling_1]
+[demo_1d_autoscaling_2]
+[demo_1d_autoscaling_3]
+
+The output is:
+[demo_1d_autoscaling_output]
+
+and the plot:
+[$images/demo_1d_autoscaling.svg]
+
+See [@../../example/demo_1d_autoscaling.cpp demo_1d_autoscaling.cpp]
+for full source code.
+
+[endsect] [/section:demo_1d_autoscaling 1-D Autoscaling Various Containers Examples]
+
+[/include demo_1d_values.qbk]
+[section:demo_1d_values 1-D Data Values Examples]
+
+[h4 Showing 1D Data Values Examples]
+
+[import ..\example\demo_1d_values.cpp]
+
+[demo_1d_values_1]
+[demo_1d_values_2]
+[demo_1d_values_output]
+
+[h4 Showing 1D Data 'at limit' Values Examples]
+
+This example demonstrates showing values that are too small or too large, or NotaNumber.
+
+[import ..\example\demo_1d_limits.cpp]
+
+[demo_1d_limits_1]
+[demo_1d_limits_2]
+Typical output is:
+[demo_1d_limits_output]
+
+[$images\demo_1d_limits.svg]
+See [@../../example/demo_1d_limits.cpp demo_1d_limits.cpp]
+for full source code and sample output.
+
+[endsect] [/section:demo_1d_values 1-D Data Values Examples]
+
+[section:demo_1d_heat_flow_data Real-life Heat flow data]
+
+This example shows some real-life data plotted in 1D and as a boxplot.
+[import ..\example\demo_1d_heat_flow_data.cpp]
+
+[heat_flow_1d_plot_1]
+
+[$images\heat_flow_data.svg]
+[$images\heat_flow_data_boxplot.svg]
+
+See [@../../example/demo_1d_heat_flow_data.cpp demo_1d_heat_flow_data.cpp]
+for full source code and sample output.
+
+[endsect] [/section:demo_1d_heat_flow_data Real life Heat flow data]
+
+[section:demo_1d_uncertainty Demonstration of using 1D data that includes information about its Uncertainty]
+
+[import ..\example\demo_1d_uncertainty.cpp]
+
+[demo_1d_uncertainty_1]
+[demo_1d_uncertainty_2]
+[/demo_1d_uncertainty_output] [/Caution doesn't like 8-bit codepage +- symbol so don't use in .?pp or in output or .qbk, Only Unicode is OK.]
+
+The resulting plot is
+[$images\demo_1d_uncertainty.svg]
+
+See [@../../example/demo_1d_uncertainty.cpp demo_1d_uncertainty.cpp]
+for full source code and sample output.
+
+[endsect] [/section:demo_1d_uncertainty Demonstration of using 1D data that includes information about its uncertainty]
+
+[endsect] [/section:tutorial_1d 1D Tutorials]
 [/ 1d_tutorial.qbk
- Copyright 2008 Jake Voytko.
+ Copyright 2007 Jake Voytko.
   Copyright 2008, 2009 Paul A. Bristow.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/2d_tutorial.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/2d_tutorial.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/2d_tutorial.qbk 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -1,13 +1,354 @@
-[section:tutorial_2d_code_simple Tutorial: 2D]
+[section:tutorial_2d 2D Tutorial]
 
-[include 2d_simple_tutorial.qbk]
-[include 2d_full_tutorial.qbk]
-[include 2d_special_tutorial.qbk]
-[include demo_2d_values.qbk]
+[/include 2d_simple_tutorial.qbk]
+[section:2d_simple_code_example Simple Code Example]
 
-[/include auto_2d_plot.qbk]
+ #include <boost/svg_plot/svg_2d_plot.hpp>
+ using namespace boost::svg;
 
-[endsect] [/2d_tutorial]
+ #include <map>
+ using std::multimap; // A more complicated STL container.
+
+ int main()
+ {
+ multimap<double, double> map1;
+ multimap<double, double> map2;
+
+ // This is random data used purely for example purposes.
+ map1[1.] = 3.2;
+ map1[1.] = 5.4;
+ map1[7.3] = 9.1;
+
+ map2[3.1] = 6.1;
+ map2[5.4] = 7.;
+
+ svg_1d_plot my_plot;
+
+ my_plot.title("Race Times")
+ .legend_on(true)
+ .x_range(-1, 11)
+ .background_border_color(black);
+
+ my_plot.plot(map1, "Series 1", blue); // Data point marker color is blue.
+ my_plot.plot(map2, "Series 2", orange);
+
+ my_plot.write("simple_2d.svg");
+ return 0;
+ }
+
+[h4 Resulting Simple_2D Example Image]
+
+[$images/2d_simple.svg]
+
+[h4 Simple_2D Example Breakdown]
+
+Let's examine what this does.
+
+ svg_2d_plot my_plot;
+
+This constructor initializes a new 2D plot. This also sets the very many default values.
+
+We could accept all of these and just plot one series of data with
+
+ my_plot.plot(map1, "Series 1"); // Data point marker color is default black.
+
+but we can also add a few optional details:
+
+ my_plot.title("Race Times")
+ .legend_on(true)
+ .x_range(-1, 11)
+ .background_border_color(black);
+
+All of the setter methods are fairly self-explanatory. To walk through it once,
+
+* The title, which will appear at the top of the graph, will say "Race Times".
+* `legend_on(true)` means that the legend box will show up (by default at top right).
+* `x_range(-1, 11)` means that the axis displayed will be between -1 and 11,
+as you can see in the above images.
+* `background_border_color(black)` sets the border around the image to `black`.
+Ordinarily it is left to be the color of the whole image background
+(and so no border of the plot area will be visible).
+
+ my_plot.plot(map1, "Series 1", blue);
+ my_plot.plot(map2, "Series 2", orange);
+
+This draws `map1` and `map2` to `my_plot`. As many containers as you want can
+be drawn to `my_plot`. Eventually the plot will become cluttered and confusing,
+when creating other plot(s) becomes sensible!
+
+The name of the series is `"Race times"`, and that
+text will show in the legend box. These are the two required parameters for
+this function call. There are many optional parameters, as seen in the section
+[@plot_function Getting More Out of the `plot()` Function]
+
+Finally
+
+ my_plot.write("simple_2d.svg");
+
+writes plot `my_plot` to the file "simple_2d.svg".
+
+You can view this file with most internet browsers, and other programs too.
+
+[endsect] [/section:tutorial_code_simple Simple program]
+
+[/include 2d_full_tutorial.qbk]
+[section:full_2d_layout Tutorial: Fuller Layout Example]
+
+ #include <boost/svg_plot/svg_2d_plot.hpp>
+ using namespace boost::svg;
+ #include <map>
+ using std::multimap;
+ #include <cmath> // for sqrt
+
+ // Some example functions:
+ double f(double x)
+ {
+ return sqrt(x);
+ // Note: negative values will all return NaN.
+ }
+
+ double g(double x)
+ {
+ return -2 + x * x;
+ }
+
+ double h(double x)
+ {
+ return -1 + 2 * x;
+ }
+
+ int main()
+ {
+ multimap<double, double> data1, data2, data3;
+
+ for(double i = 0; i <= 10.; i += 1.)
+ { // Evaluate the functions as demonstration data.
+ data1[i] = f(i);
+ data2[i] = g(i);
+ data3[i] = h(i);
+ }
+
+ svg_2d_plot my_plot; // Construct a new plot.
+
+ // Override a few default settings with our choices:
+
+ // Size of SVG image and X and Y range settings.
+ my_plot.image_size(700, 500)
+ .x_range(-1, 10)
+ .y_range(-5, 100)
+
+ // Text settings.
+ my_plot.title("Plot of Mathematical Functions")
+ .title_font_size(25)
+ .x_label("Time in Months");
+
+ // Commands.
+ my_plot.legend_on(true)
+ .plot_window_on(true)
+ .x_label_on(true)
+ .x_major_labels_on(true);
+
+ // Color settings.
+ my_plot.background_color(svg_color(67, 111, 69))
+ .legend_background_color(svg_color(207, 202,167))
+ .legend_border_color(svg_color(102, 102, 84))
+ .plot_background_color(svg_color(136, 188, 126))
+ .title_color(white);
+
+ // X axis settings.
+ my_plot.x_major_interval(2)
+ .x_major_tick_length(14)
+ .x_major_tick_width(1)
+ .x_minor_tick_length(7)
+ .x_minor_tick_width(1)
+ .x_num_minor_ticks(3)
+
+ // Y axis settings.
+ .y_major_tick(10)
+ .y_num_minor_ticks(2);
+
+ // Legend settings.
+ my_plot.legend_title_font_size(15);
+
+ // Add the 3 data series to the plot, using different markers and line colors.
+ my_plot.plot(data1, "Sqrt(x)").fill_color(red);
+ my_plot.plot(data2, "-2 + x^2").fill_color(orange).size(5);
+ my_plot.plot(data3, "-1 + 2x").fill_color(yellow).bezier_on(true).line_color(blue).shape(square);
+ // Note how the options can be chained.
+
+ my_plot.write("2d_full.svg");
+
+ return 0;
+ }
+
+This produces the following output:
+
+[$images/2d_full.svg]
+
+A little bit of color customization goes a *very* long way!
+
+[endsect] [/section:tutorial_2d_example_code]
+
+[/include 2d_special_tutorial.qbk]
+[section:2d_special Tutorial: 2D Special Features]
+
+[h4 Y-Axis Grid Lines]
+
+If you would like horizontal Y grid lines that go across the graph,
+you can make the following call to `svg_2d_plot`:
+
+ my_plot.y_major_grid_on(true)
+ .y_minor_grid_on(true);
+
+To style it, you could use the following calls:
+
+ my_plot.y_major_grid_color(lightgray) // Darker color for major grid.
+ .y_minor_grid_color(whitesmoke); // Lighter color for minor grid.
+
+This will produce the following plot image:
+
+[$images/2d_y_grid.svg]
+
+The source of this examples is at [@..\..\example\2d_y_grid.cpp]
+
+Similarly you can have horizontal and/or vertical lines:
+
+ my_plot.x_major_grid_on(true)
+ .x_minor_grid_on(true);
+
+and color it similarly for faint blues like old fashioned graph paper:
+
+ my_plot.y_major_grid_color(svg_color(200, 220, 255)) // Darker color for major grid.
+ .y_minor_grid_color(svg_color(240, 240, 255); // lighter color for minor grid.
+
+and to make the major grid much wider than the minor grid:
+
+ my_plot.y_major_grid_width(4)
+ .y_minor_grid_width(1)
+
+[heading Fill the area between the plot and the axis]
+
+When there is a call to the plot() method, define `area_fill_color`
+
+ multimap<double, double> my_data;
+ svg_2d_plot my_plot;
+
+ my_plot.plot(my_data, "Data", area_fill_color(red));
+
+This produces the following images:
+
+[$images/2d_area_fill_1.svg]
+[$images/2d_area_fill_2.svg]
+
+from source at [@..\..\example\2d_area_fill.cpp]
+
+[h4 Curve Interpolation]
+
+If you would like an *interpolated curve* shown over your data
+(rather than the default straight lines joining points),
+simply use the following command:
+
+ my_plot.plot(data, "Series 1", bezier_on(true);
+
+This produces something like the following images:
+
+[$images/2d_bezier.svg]
+
+[warning The `_bezier_curve` feature still displays undesired behavior in extreme circumstances.
+Do not use this feature with curves that have a numeric_limit value (`-NaN`, for example),
+or with data that has high irregularity in X-Axis spacing
+(for example, a clump of points between (0, 1) on the X axis,
+with the next one at 100 on the X axis.)
+In general, curves must be reasonably well-behaved to be smoothable.
+In general, using more data points will make smoothing work better,
+but will increase svg file sizes.]
+[endsect] [/2d_special Tutorial: 2D Special Features]
+
+[/include demo_2d_values.qbk]
+[section:demo_2d_values 2-D Data Values Examples]
+
+[h4 Showing 2d Data Values Examples]
+
+[import ..\example\demo_2d_values.cpp]
+
+[demo_2d_values_1]
+[demo_2d_values_2]
+[demo_2d_values_output]
+
+And the plot:
+[$images\demo_2d_values.svg]
+
+[h4 Showing 2d Data 'at limit' Values Examples]
+
+Some values are 'at limit' - infinite, NotANimber (NaN) or near the maximum possible for the floating-point type.
+These values are displayed differently (and not used for autoscaling).
+
+[import ..\example\demo_2d_limits.cpp]
+
+[demo_2d_limits_1]
+[demo_2d_limits_2]
+[demo_2d_limits_output]
+
+[endsect] [/section:demo_2d_values 2-D Data Values Examples]
+
+[section:demo_2d_autoscaling 2-D Autoscaling Examples]
+
+[h4 Autoscale 2D Examples]
+
+[import ..\example\auto_2d_plot.cpp]
+
+[auto_2d_plot_1]
+[auto_2d_plot_2]
+[auto_2d_plot_output]
+
+The plot is
+[$images\auto_2d_plot.svg]
+
+[endsect] [/section:demo_2d_autoscaling 2-D Autoscaling Examples]
+
+[section:demo_2d_uncertainty Demonstration of using 1D data that includes information about its uncertainty]
+ [/Caution XML doesn't like 8-bit codepage +- symbol so don't use in .?pp or in output or .qbk, Only Unicode is OK.]
+
+[import ..\example\demo_2d_uncertainty.cpp]
+
+[demo_2d_uncertainty_1]
+[demo_2d_uncertainty_2]
+[/demo_2d_uncertainty_output]
+
+The resulting plot is
+[$images\demo_2d_uncertainty.svg]
+
+See [@../../example/demo_2d_uncertainty.cpp demo_2d_uncertainty.cpp]
+for full source code and sample output.
+
+[endsect] [/section:demo_2d_uncertainty Demonstration of using 2D data that includes information about its uncertainty]
+
+[section:fit_lines Demonstration of adding lines and curves, typically a least squares fit]
+
+[import ..\example\demo_2d_lines.cpp]
+[demo_2d_lines_1]
+[demo_2d_lines_2]
+
+The resulting plot is
+[$images\demo_2d_lines.svg]
+
+See [@../../example/demo_2d_lines.cpp demo_2d_lines.cpp]
+for full source code and sample output.
+
+[endsect] [/section:fit_lines Demontration of adding lines and curves, typically a least squares fit]
+
+[section:histograms Histograms of 2D data]
+
+See [@../../example/demo_2d_histogram.cpp demo_2d_histogram.cpp]
+for full source code and sample output.
+
+The resulting histograms are
+[$images\demo_2d_histogram_x.svg]
+[$images\demo_2d_histogram_x2.svg]
+
+[endsect] [/section:histograms Histograms of 2D data]
+
+[endsect] [/section:tutorial_2d 2D Tutorial]
 
 [/ 2d_tutorial.qbk
   Copyright 2008 Jake Voytko.

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/Jamfile.v2
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/Jamfile.v2 (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/Jamfile.v2 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -1,4 +1,4 @@
-# jamfile.v2 for SVG_plot using Doxygen
+# jamfile.v2 for SVG_plot Quickbook Documentation and index using Doxygen
 
 # Copyright Paul A. Bristow 2009
 # Derived from Copyright Eric Niebler 2005 Boost xPressive docs.

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/behavior_tutorial.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/behavior_tutorial.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/behavior_tutorial.qbk 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -28,7 +28,7 @@
 
 When plotted, these values will appear at the *top* of your plot window.
 If the plot window is not turned on,
-these points will appear at the top of the graph.
+these points will appear at the top of the image.
 
 [h4 Negative Infinity]
 
@@ -41,12 +41,15 @@
 
 When plotted, these values will appear at the *bottom* of your plot window.
 If the plot window is not turned on,
-these points will appear at the bottom of the graph.
-
-Here is an example of numeric limits handling in action:
+these points will appear at the bottom of the image.
 
+Here is an example of showing values at numeric limits:
 [$images/2d_limit.svg]
 
+See also examples of limits in 1-D and 2-D plots.
+[@../../example/demo_1d_limits.cpp]
+[@../../example/demo_2d_limits.cpp]
+
 [endsect] [/section:numerical_limits]
 
 

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/boxplot_tutorial.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/boxplot_tutorial.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/boxplot_tutorial.qbk 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -2,7 +2,7 @@
 
 [include boxplot_simple_tutorial.qbk]
 
-[include boxplot_full_tutorial.qbk]
+[/ include boxplot_full_tutorial.qbk] [/TODO?]
 
 [include boxplot_quartiles.qbk]
 

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/demo_1d_autoscaling.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/demo_1d_autoscaling.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/demo_1d_autoscaling.qbk 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -8,7 +8,7 @@
 The output is:
 [auto_1d_plot_output]
 
-[$images/auto_1d_plot.svg auto_1d_plot.svg]
+[$images/auto_1d_plot.svg]
 
 See [@../../example/auto_1d_plot.cpp auto_1d_plot..cpp]
 for full source code.

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/html/index.html
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/html/index.html (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/html/index.html 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -33,7 +33,7 @@
 </div></div>
 <div><p class="copyright">Copyright © 2007 to 2009 Jake Voytko and Paul A. Bristow</p></div>
 <div><div class="legalnotice">
-<a name="id778632"></a><p>
+<a name="id1085901"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -53,13 +53,13 @@
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/1d_vector_tutorial.html">
       1-D Vector Example</a></span></dt>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/demo_1d_containers_tutorial.html">
- 1-D Containers Examples</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/auto_1d_containers_tutorial.html">
- 1-D Auto Multiple Containers Examples</a></span></dt>
+ 1-D STL Containers Examples</a></span></dt>
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/1d_autoscale_containers.html">
+ Tutorial: 1D Autoscale with Multiple Containers</a></span></dt>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/full_1d_layout.html">
       Tutorial: 1D More Layout Examples</a></span></dt>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/1d_special.html">
- Tutorial: 1D Special Features</a></span></dt>
+ Tutorial: 1D Gridlines &amp; Axes - more examples</a></span></dt>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/demo_1d_axis_scaling.html">
       1-D Axis Scaling</a></span></dt>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/auto_1d_plot.html">
@@ -68,53 +68,42 @@
       1-D Autoscaling Various Containers Examples</a></span></dt>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/demo_1d_values.html">
       1-D Data Values Examples</a></span></dt>
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/demo_1d_heat_flow_data.html">
+ Real-life Heat flow data</a></span></dt>
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_1d/demo_1d_uncertainty.html">
+ Demonstration of using 1D data that includes information about its Uncertainty</a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d_code_simple.html">
- Tutorial: 2D</a></span></dt>
+<dt><span class="section"> 2D Tutorial</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d_code_simple/2d_simple_code_example.html">
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d/2d_simple_code_example.html">
       Simple Code Example</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d_code_simple/full_2d_layout.html">
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d/full_2d_layout.html">
       Tutorial: Fuller Layout Example</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d_code_simple/2d_special.html">
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d/2d_special.html">
       Tutorial: 2D Special Features</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d_code_simple/demo_2d_values.html">
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d/demo_2d_values.html">
       2-D Data Values Examples</a></span></dt>
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d/demo_2d_autoscaling.html">
+ 2-D Autoscaling Examples</a></span></dt>
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d/demo_2d_uncertainty.html">
+ Demonstration of using 1D data that includes information about its uncertainty</a></span></dt>
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d/fit_lines.html">
+ Demonstration of adding lines and curves, typically a least squares fit</a></span></dt>
+<dt><span class="section"><a href="plotting_graphs_in_svg_format/tutorial_2d/histograms.html">
+ Histograms of 2D data</a></span></dt>
 </dl></dd>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/svg_boxplot_tutorial.html"> Tutorial:
     Boxplot</a></span></dt>
 <dd><dl>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/svg_boxplot_tutorial/svg_boxplot_tutorial_simple.html">
       Simple Example</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/svg_boxplot_tutorial/svg_boxplot_tutorial_full.html">
- Full Boxplot Layout</a></span></dt>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/svg_boxplot_tutorial/svg_boxplot_quartiles.html">
       Definitions of the Quartiles</a></span></dt>
 </dl></dd>
 <dt><span class="section"> SVG tutorial</span></dt>
 <dt><span class="section"><a href="plotting_graphs_in_svg_format/behavior_limits.html"> Showing
     data values at Numerical Limits</a></span></dt>
-<dt><span class="section"> Plot Defaults</span></dt>
-<dd><dl>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/plot_defaults/1d_defaults.html">
- <code class="computeroutput"><span class="identifier">svg_1d_plot</span></code> Defaults</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/plot_defaults/2d_defaults.html">
- <code class="computeroutput"><span class="identifier">svg_2d_plot</span></code> Defaults</a></span></dt>
-</dl></dd>
-<dt><span class="section"> Public Interfaces</span></dt>
-<dd><dl>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/interface/svg_interface.html">
- <code class="computeroutput"><span class="identifier">svg</span></code> Public Interface</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/interface/svg_1d_plot_interface.html">
- <code class="computeroutput"><span class="identifier">svg_1d_plot</span></code> Public Interface</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/interface/svg_2d_plot_interface.html">
- <code class="computeroutput"><span class="identifier">svg_2d_plot</span></code> Public Interface</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/interface/svg_boxplot_interface.html">
- <code class="computeroutput"><span class="identifier">svg_boxplot</span></code> Public Interface</a></span></dt>
-<dt><span class="section"><a href="plotting_graphs_in_svg_format/interface/settings.html"> Show
- settings Public Interface</a></span></dt>
-</dl></dd>
-<dt><span class="section">Reference</span></dt>
+<dt><span class="section">Reference</span></dt>
 <dd><dl>
 <dt><span class="section">Header <boost/svg_plot/detail/auto_axes.hpp></span></dt>
 <dt><span class="section">Header <boost/svg_plot/detail/axis_plot_frame.hpp></span></dt>
@@ -142,9 +131,9 @@
     &amp; Rationale</a></span></dt>
 <dt><span class="section"> To Do List</span></dt>
 <dt><span class="section"> Acknowledgements</span></dt>
-<dt><span class="section">Class Index</span></dt>
-<dt><span class="section">Function Index</span></dt>
-<dt><span class="section">Index</span></dt>
+<dt><span class="section">Class Index</span></dt>
+<dt><span class="section">Function Index</span></dt>
+<dt><span class="section">Index</span></dt>
 </dl>
 </div>
 <div class="important"><table border="0" summary="Important">
@@ -165,13 +154,13 @@
 <th align="left">Note</th>
 </tr>
 <tr><td align="left" valign="top"><p>
- Comments and suggestions (even bugs) to Paul.A.Bristow (at) gmail (dot) com
- or Jake Voytko at jakevoytko (at) gmail (dot) com
+ Comments and suggestions (even bugs) to Paul.A.Bristow (at) hetp (dot) u-net
+ (dot) com or Jake Voytko at jakevoytko (at) gmail (dot) com
     </p></td></tr>
 </table></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: March 20, 2009 at 19:17:12 GMT</small></p></td>
+<td align="left"><p><small>Last revised: March 27, 2009 at 12:11:01 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/interface.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/interface.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/interface.qbk 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -8,7 +8,7 @@
   [[`svg_1d_plot()`] [See the defaults section for further details] []]
   [[`svg_1d_plot& image_size(unsigned int, unsigned int)`] [Sets the size of the image produced (pixels)] [500, 200]]
   [[`svg_1d_plot& coord_precision(int)`] [Sets the precision output for coordinates (decimal digits).] [3]]
- [[`svg_1d_plot& document_title(std::string)`] [Sets title for the SVG XML document (not the plot). <title>My Document title</title>] [""]
+ [[`svg_1d_plot& document_title(std::string)`] [Sets title for the SVG XML document (not the plot). <title>My Document title</title>] [""]]
   [[`svg_1d_plot& description(std::string)`] [Sets description for the SVG XML document, as comment and XML, for example: <!-- My Document description -->
 <desc>My Document description</desc>]]
 
@@ -27,7 +27,7 @@
   [[`svg_1d_plot& legend_on(bool)`] [Sets if the legend is on (true) or off.] [true]]
   [[`svg_1d_plot& plot_window_on(bool)`] [Sets if the plot window border will be displayed.] [false]]
   [[`svg_1d_plot& title_on(bool)`] [Sets if image title is displayed.] [false, until title string assigned.]]
- [[`svg_1d_plot& x_axis_on(bool)`] [Sets if X-axis is displayed.]]
+ [[`svg_1d_plot& x_axis_on(bool)`] [Sets if X-axis is displayed.] [true]]
   [[`svg_1d_plot& x_external_style_on(bool)`] [Sets if axis is inside or outside of the plot.] [false]]
   [[`svg_1d_plot& x_label_on(bool)`] [Sets if X-axis label will show.][false, until label assigned.]]
   [[`svg_1d_plot& x_major_labels_on(int)`] [Sets if major ticks will be labelled on the X-axis. ][true]]
@@ -54,7 +54,7 @@
 ] [/ table 1D_plot Colors]
 
 [table 1D_plot X-Axis Definition
- [[Signature] [Description] [Default]]
+ [[Signature] [Description]]
   [[`svg_1d_plot& x_axis_width(unsigned int)`] [Sets the stroke width of the X-axis.] ]
   [[`svg_1d_plot& x_label(const std::string&)`] [Sets the label of the X-axis. You must call `x_label_on(true)` to display.] ]
   [[`svg_1d_plot& x_label_units(const std::string&)`] [Sets the units label of the X-axis. You must call `x_label_on(true)` to display.] ]
@@ -73,27 +73,18 @@
 
 
 [heading The 1D_plot `plot()` Method]
-The `plot()` method is defined using Boost.Parameter. As such, it supports a
-few extra named parameters, as well as a deduced parameter.
+The `plot()` function takes as its main parameters the data to be plotted, and its title, but can also take many chained functions.
 
 [table 1D_plot Required parameter
 [[ID] [Type (* is a wildcard)] [Description] [Default]]
 [[container] [*] [Any object that can return an iterator with begin() and end()]]
-[[title] [`std::string`] [The name of this data series. ]]
-] [/ table 1D_plot Required parameter]
+[[title] [`std::string`] [The name or title of this data series. ]]
+] [/ table 1D_plot Required parameters]
 
 [note To use special characters, insert the XML character entity equivalents: for example: left angle bracket &lt;, right angle bracket &gt;, and ampersand &amp;, double-quotation marks &quot; for single-quotation marks &apos;. You can use numeric character references, such as &#165; for Greek and Math symbols.]
 
-[table 1D_plot Deduced parameter
-[[ID] [Type] [Description] [Default] [Default]]
-[[fill_color] [`svg_color`] [Color that shows *inside the circle* being drawn.] [white]]
-] [/ table 1D_plot Deduced parameter]
-
 [table 1D_plot Optional Parameters
-[[ID] [Type] [Description] [Default] [Default]]
-[[stroke_color] [`svg_color`] [Outline of the circle that is being drawn.] [black] ]
-[[point_style] [`point_shape`] [Shape of the point. Options currently are: [^none], [^circle], and [^square].] [circle]]
-[[size] [`unsigned int`] [Height/width of the circle and square.] [10]]
+[[ID] [Type] [Description]]
 [[x_functor] [*] [A class or functor that contains a conversion function. You will not have to worry about this, unless you are trying to plot a container of type that does *not* have a conversion to double, for example, age of a user-defined type `humans`. For example:
 ``
 class my_functor

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/rationale.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/rationale.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/rationale.qbk 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -32,7 +32,7 @@
  3 if major on 0, minor on 1, 2, 3 and major on 4...
  7 if major on 0, minor on 1,2,3,4,5,6,7 and major on 8 ...
  15 if major on 0, minor on 1,2,3,4,5,6,7, 8,9,A,B,C,D,E,F, major on 0x10...
-
+
  For decimal based values, num_minor_ticks 1, 4, 9 are useful, for example:
  1 if major are even, major 0, minor 1, major 2 ...
  4 if major on 0, minor on 1,2,3,4, major on 5 ...
@@ -52,7 +52,7 @@
 No changes that affect the code produced
 have been detected from a quick perusal of this document.
 It is probable but untested that the svg files produced will also comply
-with the [@http://www.w3.org/TR/SVGMobile12/ Tiny svg for mobiles specification].
+with the [@http://www.w3.org/TR/SVGMobile12/ Tiny SVG for mobiles specification].
 
 [h4 Design]
 
@@ -167,18 +167,18 @@
 This does not exclude the use of other metadata schemes.
 
 A simple way of adding metadata for copyright is provided by functions to set
-
+
     copyright_holder(std::string);
     copyright_date(std::string);
-
+
 (as well as description and document_title, and .svg filename if any).
-
+
 For example, setting these will incorporate an XML comment
-
- <!-- SVG Plot Copyright Paul A. Bristow 2007 -->
-
+
+ <!-- SVG Plot Copyright Paul A. Bristow 2007 -->
+
 and also as meta data:
-
+
    <meta name="copyright" content="Paul A. Bristow" />
    <meta name="date" content="2007" />
 
@@ -189,12 +189,12 @@
 of providing license terms in a machine-readable format.
 
 Typical data added to the file would be XML like this:
-
+
   <metadata>
     <rdf:RDF xmlns:cc="http://web.resource.org/cc/"
              xmlns:dc="http://purl.org/dc/elements/1.1/"
              xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <cc:work rdf:about="filename.svg">
+ <cc:work rdf:about="filename.svg">
         <!-- insert filename or title here -->
         <dc:title>Plot title</dc:title>
         <dc:creator>Boost.Plot</dc:creator>
@@ -210,9 +210,9 @@
       </cc:work>
     </rdf:RDF>
   </metadata>
-
+
 cc:permits can also be cc:requires or cc:prohibits, as required.
-
+
 A license that permits reproduction, distribution and commercial use,
 but requires both notice & attribution
 is probably most suitable for Boost documents as is therefore chosen as the default.
@@ -221,7 +221,7 @@
 If this license will be included can be discovered by calling svg member function `is_license()`.
 
 Similarly functions
- const std::string license_reproduction();`
+ const std::string license_reproduction();
   const std::string license_distribution();
   const std::string license_attribution();
   const std::string license_commercialuse()
@@ -242,7 +242,7 @@
 
   author(const std::string);
   const std::string author();
-
+
 [h4 Using Unicode Symbols (usually Math Sumbols and Greek letters)]
 
 Unicode symbols that work on most browsers in html are listed at:
@@ -261,9 +261,9 @@
 
 Similarly for greek in title, legend and axes:
 
- .legend_title("My Legend &#956;") // generates <em>&#956;</em> greek mu
-
-
+ .legend_title("My Legend &#956;") // generates <em>&#956;</em> greek mu
+
+
 [h4 Subscript and superscript in title, legend and labels]
 
 It is very common need to show superscript, in units for example, area (m[super 2]),
@@ -300,18 +300,18 @@
 but baseline-shift has no effect on Firefox 2. See
 http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=7410&view=previous
 
-The use of <tspan to shift characters *is* feasible, as shown
+The use of <tspan to shift characters *is* feasible, as shown
 [@http://www.w3.org/TR/SVG/images/text/tspan02.svg in this example],
-which displays correctly in all browsers,
+which displays correctly in all browsers,
 
 and it is also possible to use
 
   <svg:g transform="translate(5.062500, -5.367188)">
-
+
 to shift the next letter up, but these parameters are font-size related,*
 and the svg most verbose.
 
-None of these method provides a *convenient* method of creating the right string
+None of these method provides a *convenient* method of creating the right string
 for titles, legends, or axis labels, but it may be possible to devise code that does.
 
 [h4 Coding style]
@@ -320,19 +320,6 @@
 and [@http://groups.yahoo.com/group/boost/files/coding_guidelines.html Boost coding guidelines]
 has been used.
 
-But some work is needed to rename arguments named with lading underscores in violation of
-guidance 2.14:
-
-Names containing double underscores (``__'') or beginning with single underscores (``_'')
-are entirely forbidden. These are reserved to the C++ implementation in various contexts.
-
-and also
-
-2.10. Data members should have a ``m_'' prefix, to distinguish them
-from an otherwise-identical member function name
-and to clarify their provenance in code which uses them.
-Non-member names must not have an ``m_'' prefix.
-
 Some data members end with _ to avoid name clashes, another widely used convention.
 
 [endsect] [/section:implementation Implementation & Rationale]

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_interface.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_interface.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_interface.qbk 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -11,9 +11,9 @@
   [[`g_element& add_g_element()`] [Adds a g_element at the root of the document tree. Acts as a `push_back()`] [Returns the `g_element` that is pushed back. This allows you to do something like the following: `image.add_g_element().line(/**/).line(/**/).rect(/**/); `
   which adds two lines and a rectangle to the g_element that was just created.]]
 
- [[`circle_element& circle(double x, double y, unsigned int radius = 5)`] [Adds a point at (x,y) in the root level of the document][If the user is calling the circle method, odds are they would prefer a real circle instead of a degenerate circle (a point). 5 is as good a default as any other, and the user is unlikely want a point if they are making this call.]]
+ [[`circle_element& circle(double x, double y, unsigned int radius = 5)`] [Adds a point at (x,y) in the root level of the document.][If the user is calling the circle method, odds are they would prefer a real circle instead of a degenerate circle (a point). 5 is as good a default as any other, and the user is unlikely want a point if they are making this call.]]
 
- [[`ellipse_element& ellipse(double rx, double ry, double cx, double cy)`] [Adds an ellipse at the root level of the doucment][The widths of the ellipse are required]]
+ [[`ellipse_element& ellipse(double rx, double ry, double cx, double cy)`] [Adds an ellipse at the root level of the doucment.][The radii of the ellipse are required.]]
 
   [[`g_element& get_g_element(int)`] [Gets the g_element at the index specified.] [Gives a runtime error if you specify an index that does not contain a `g_element`. An iterator interface to access these elements might be useful.]]
 
@@ -50,7 +50,7 @@
 
   [[`polygon_element& triangle(double x1, double y1, double x2, double y2, double x3, double y3, bool f = true`] [Generates a triangle at the three Cartesian coordinates specified] [Fill is determined by `f`]]
 
-][/SVG C++ default methods table]
+] [/SVG C++ default methods table]
 
 [table Special methods
   [[Signature] [Description] [Notes & Examples]]
@@ -59,7 +59,7 @@
 
   [[`void load_stylesheet(const std::string& input)`][Allows you to define the filename of a stylesheet. The stylesheet is validated as being a strict subset of the CSS syntax.][]]
 
-][/Special methods for SVG class]
+] [/Special methods for SVG class]
 
 [table `svg` Copyright
   [[Signature] [Description] [Notes & Examples]]
@@ -98,7 +98,7 @@
 
   [[`const std::string& reproduction()`] [Returns the Reproduction segment of the license] [The default is `""`]]
 
-][/Copyright table]
+] [/Copyright table]
 
 [table `svg` document settings and writing
   [[Signature] [Description] [Notes & Examples]]
@@ -133,7 +133,7 @@
 
 
 [/ svg_interface.qbk
- Copyright 2008 Jake Voytko and Paul A. Bristow.
+ Copyright 2008, 2009 Jake Voytko and Paul A. Bristow.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

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 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -50,14 +50,16 @@
 not otherwise visible in a list of numbers. Computers, however, deal with
 information numerically, and C++ and the
 [@http://en.wikipedia.org/wiki/Standard_Template_Library Standard Template Library (STL)]
-does not currently offer a way to bridge the gap.
+do not currently offer an easy way to bridge the gap.
 
 This library aims to help the user to easily plot data that is stored in STL containers.
 
-This project is focused on using STL containers in order to graph data on a
-one-dimensional and two-dimensional (and in future, perhaps, 3D) plot.
-The plot will currently be written to a
-[@http://en.wikipedia.org/wiki/Scalable_Vector_Graphics Scalable Vector Graphic image].
+This project is focused on using STL containers in order to display data on a
+one-dimensional, two-dimensional plot and boxplots.
+The plot is written to a
+[@http://en.wikipedia.org/wiki/Scalable_Vector_Graphics Scalable Vector Graphic image]
+(that can also be converted to other graph types,
+for example, PNG [@http://en.wikipedia.org/wiki/Portable_Network_Graphics]).
 
 [@http://www.w3.org/TR/SVG11/ Scalable Vector Graphics (SVG)] is an
 [@http://www.w3.org/TR/REC-xml/#sec-comments XML specification]
@@ -70,7 +72,7 @@
 * [@http://www.adobe.com/products/illustrator Adobe Illustrator].
 
 * [@www.opera.com Opera] has [@http://www.opera.com/docs/specs/svg/ svg support]
-but the quality of rendering is often not as good as other browsers.
+but the quality of rendering is sometimes not as good as other browsers.
 
 * Microsoft Internet Explorer, provided a suitable
 [@http://www.adobe.com/svg/ Adobe SVG Viewer plug-in for SVG files] is installed.
@@ -84,6 +86,8 @@
 * [@http://www.inkscape.org/ Inkscape], a fine Open Source SVG editor and viewer
 with excellent rendering, full scaling and other editing features.
 
+* [@www.google.com/chrome Google Chrome]
+
 * Many other graphics programs, for example see
 [@http://svg.software.informer.com/software/ Most popular SVG software].
 
@@ -91,7 +95,7 @@
 
 * To let users produce simple plots with minimal intervention by using sane defaults.
 * To allow users to easily customize plots but allow very fine-grained control of appearance.
-* To provide very high quality plots suitable for publication including printing, but with tiny file sizes.
+* To provide very high quality plots suitable for publication, including printing, but with tiny file sizes.
 * To allow the user to talk to the plot classes using coordinate units
 rather than pixels or other arbitrary units.
 * To create the backbone of a `svg` class that can be extended to fully support
@@ -103,14 +107,14 @@
 
 [include how_to_use.qbk]
 [include colors.qbk]
-[include 1d_tutorial.qbk]
-[include 2d_tutorial.qbk]
-[include boxplot_tutorial.qbk]
-[include svg_tutorial.qbk]
+[include 1d_tutorial.qbk] [/ All 1d examples]
+[include 2d_tutorial.qbk] [/ All 2d examples]
+[include boxplot_tutorial.qbk] [/ All boxplot examples]
+[include svg_tutorial.qbk] [/ Examples using SVG directly, not plotting]
 [/include stylesheet_tutorial.qbk] [/ No longer implemented.]
 [include behavior_tutorial.qbk]
-[include plot_defaults.qbk]
-[include interface.qbk]
+[/include plot_defaults.qbk] [/See Doxygen reference documentation.]
+[/include interface.qbk] [/Replaced by Doxygen reference documentation.]
 [xinclude autodoc.xml] [/ Using Doxygen reference documentation.]
 [include rationale.qbk]
 [include to_do.qbk]
@@ -136,7 +140,7 @@
 the code is quite functional, but interfaces, library structure, and names
 may still be changed without notice.]
 
-[note Comments and suggestions (even bugs) to Paul.A.Bristow (at) gmail (dot) com
+[note Comments and suggestions (even bugs) to Paul.A.Bristow (at) hetp (dot) u-net (dot) com
 or Jake Voytko at jakevoytko (at) gmail (dot) com]
 
 

Modified: sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_tutorial.qbk
==============================================================================
--- sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_tutorial.qbk (original)
+++ sandbox/SOC/2007/visualization/libs/svg_plot/doc/svg_tutorial.qbk 2009-03-27 08:58:16 EDT (Fri, 27 Mar 2009)
@@ -6,7 +6,7 @@
 
 A few very rudimentary examples of use (mainly historically used to testbed various features used in the plot interfaces) can be seen at
 
-[@\..\example\demo_svg.cpp]
+[@../../example/demo_svg.cpp]
 
 [endsect]
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk