Boost logo

Boost :

Subject: Re: [boost] Boost.Plot? - Scalable Vector Graphics
From: Max (more4less_at_[hidden])
Date: 2009-07-30 04:28:09

One Simple question.

I've never used svg format before. We know it's quite easy to show an SVG
file in IE or so by drag-n-drop, how can we visualize SVG file by our own,
means how to show the plots in my program not using a browser?



> -----Original Message-----
> From: boost-bounces_at_[hidden] [mailto:boost-bounces_at_[hidden]]
> On Behalf Of Paul A. Bristow
> Sent: Wednesday, July 29, 2009 10:07 PM
> To: boost_at_[hidden]
> Subject: [boost] Boost.Plot? - Scalable Vector Graphics
> Jake Voytko started this library during a 2007 GSoC and I have now
> it quite a bit, and begun to use it for my own purposes (including
preparing the
> plot for the Boost.Math library functions and statistical distributions).
> Before I do any more work on it, I'd appreciate feedback from Boosters on
> how useful they think it might be, perhaps as a Boost library?
> Although it still has plenty of wrinklies (the calculation of positioning
of titles,
> legends, axes labels and ticks labels is intricate - to say the least).
> And there are not-a-few nasty warts (this may be the 1st version to throw
> away?), so it is in no way review-ready.
> But I believe it is working well enough for you to try to use it - and to
give me
> feedback.
> There are of course hundreds of programs for plotting.
> What is special about *this* library is that it is in C++ and it has a
Boost license.
> It allows you to add just a few lines of code to the end of your C++
program to
> take data from any STL container (all or part) and produce a plot as a
> Vector Graph (.svg) file. (No need to export data to a file and suck into
> Excel ;-) Applause!)
> .svg files can be displayed by all good Internet Browsers (and even by IE8
> an Adobe add-in). They are very small but high quality, highly zip
> compressible, and equally suitable for printing to viewing on mobiles
(only the
> features of Tiny SVG are used.).
> It takes as little code as
> svg_2d_plot my_plot;
> my_plot
> .plot(map1, "Series 1").stroke_color(blue)
> .plot(map2, "Series 2").stroke_color(red")
> .autoscale(map1);
> my_plot.write("./2d_simple.svg");
> but you can have hours of fun trying out hundreds of options to produce
> some rather fancy plots.
> For your amusement, attached are a few (mostly contrived) examples (with
> tasteless garish colors just to highlight the possible options). There
are also
> lots and lots of other examples. (Note that the 20 plots occupy a mere 30
> when zipped).
> Unusually, there is lots (too much? - 6Mbyte hyperlinked and indexed PDF!)
> documentation, produced using the C++ in QuickBook with Doxygen
> reference info and John Maddock's auto-indexing. But there are hundreds
> options, so you will need all the help you can get from tutorials,
examples and
> indexes.
> A novel feature is the built-in handling of an 'uncertain' type (based on
> Marshal Manning, C/C++ Users Journal, March 1996 page 29 to 38) including
> a double 'most likely' value, an 'uncertainty' estimate, roughly standard
> deviation, and an estimate of 'degrees of freedom'. This can be used to
> display confidence ellipses and label values "1.23 +-0.01 (21)", for
> (Of course, you can make much better confidence estimates using the
> Boost.Math library).
> You can view and can get code from the Boost sandbox
> Docs are available to build as html and pre-built as pdf (patience - 6
> Mbyte!)
> ot
> /doc/pdf/svg_plot.pdf
> or
> (or ask if you want zips instead).
> Paul
> PS Thanks to all those who have offered support, especially John Maddock
> of course. It has stress-tested the Quickbook - Doxygen indexing system
> I haven't managed to make the index work perfectly yet and I'm sure it can
> improved.
> PPS If I were doing this again, I would not use 'derived' trick to permit
> of functions by 1D, 2D and boxplots - it causes the Intellisense of MS
> VisualStudio IDE 'Intelligence Circuits' to melt (and sometimes crash -
> workaround - delete the .ncb file) making the nice 'goto definition'
> ineffective and makes debugging difficult (as does the use of set and get
> functions). I suspect it makes compile times longer too. There must be
> better way - suggestions welcome.
> But I *would* use the chaining feature - I think it makes a very nice
syntax for
> the user - but tell me what you think.
> ---
> Paul A. Bristow
> Prizet Farmhouse
> Kendal, UK LA8 8AB
> +44 1539 561830, mobile +44 7714330204
> pbristow_at_[hidden]

Boost list run by bdawes at, gregod at, cpdaniel at, john at