This project is still in development, so here is a list of things that I would
still like to do by the end of the project. I recommend you check here first
before you email me with requests.
-
Allow an external stylesheet to be loaded
to style the graph. External stylesheets will allow a standard and easy way
to style the document so that users don't have to come up with their own
home-grown solutions.
-
Allow function pointers to specify functions
as input. A use case where the user wants to just see what
sin(x)
looks like is easily imaginable.
-
Radian coordinate system.
-
Implementation of SVG's DOM. This will make
the SVG class useful for other things than solely making graphs!
-
Automatic scaling of the axis
-
Allow 2D plots of 1D containers. Currently
I am having trouble with having functors that update state interact with
make_transform_iterator,
and have omitted the feature.
-
Allow other image formats. This is certainly
an after-GSoC project, as there are many inherent difficulties with this
part. The solution that I am currently playing with is allowing the user
to pass a functor that traverses the document tree. Generalizing images to
an
image class is fraught
with difficulties, as SVG is a tree-based format, which it does not share
with many other formats. When I come up with what I feel is a minimal-intervention
method of doing this, I will begin a discussion on the Boost dev list.
-
Avoid redrawing the entire plot each time.
This is the easiest way to write the program initially, but it would be more
efficient if the program could keep track of what has been changed and what
hasn't, so that it may be more efficient if lots of images are being produced.
-
Allow the user to provide a function object for generating custom
axis labels (For example, months instead of integer representations
of months)
- Logarithmic Axis
-
Clipping of the plot window, so that graph
lines do not get drawn outside of the plot.
- Histogram
- Box-and-whisker