Nothing to do with RMS and FSF and released under a rather strange, or perhaps I should say unusual, licence that requires distrution of modified versions as patches rather than complete packages. Never mind, it doesn't seem to restrict use or modification.
The GnuPlot implementers have done a marvellous job but of course they can't do everything all at once so until Ricardo Sasson Saat (rssat@altavista.net) created CVBGnuPlot there was no convenient way for VB programs to use it. CVBGnuPlot is a straightforward wrapper around GnuPlot that lets a VB program pretend that it is talking to a COM object. This at least lets you get started but it has the drawback from a VB programmers point of view that the interface is very much narrative instead of declarative. To make it easier to plot data sets derived from collections of objects I needed to write code to convert my data into the narrative form. I could have written ad-hoc code where it was needed and made it drive CVBGnuPlot directly but I felt that that would result in lots of code duplication and also be difficult to maintain as there would not be an easily discerned boundary between the collections of data objects and the plot. It seemed better to create some classes instances of which could act as a staging area for the data. If you do decide to look at the code please remember that this is not an attempt to expose all the power of GnuPlot, CVBGnuPlot already does that perfectly well, the purpose is quite the opposite: I want to hide as much complexity as possible and create an interface that does what I want and not much more. Nonetheless it might be useful to someone else because while it is restricted to a small subset of GnuPlot's capabilities it is not directed toward any specific application.
The current implementation is very much an exploration. It consists of three classes in addition to Ricardo Sasson Saat's (rssat@altavista.net) CVBGnuPlot and vbgnuplotmodule. These classes are: