Pretty cool.
The API is interesting. As I see it, this will be limited to things like bar, plots or line graphs. For example, a spider chart will not work with this one, but it will use a builder of its own, right?
Some feedback: - I would rename Plugin to Decorator. From your statement, "The plugin framework exposes to a plugin all the necessary to define a whole range of decorations" it seems to me that "Decorator" fits better. - I would just call the class RTGrapher - I do not quite understand how to distinguish the difference between DataSet and StackedDataSet.
Cheers, Doru
On Mon, Jan 5, 2015 at 12:22 AM, Alexandre Bergel alexandre.bergel@me.com wrote:
Hi!
RTGraphBuilder went through major improvements.
- min and max may be specified.
- plugins to add some decoration (average line, standard deviation range,
ticks lines, …)
Here are some examples, with some examples, which should illustrate these points: Is obtained with: -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= | b ds | b := RTGrapherBuilder new.
ds := RTDataSet new. ds points: (0 to: 100 by: 0.1). ds y: [ :x | (0.1 * x) sin ]. ds noDot. ds interaction popupText: 'sinus'. ds connectColor: Color blue. b add: ds.
ds := RTDataSet new. ds points: (0 to: 100 by: 0.1). ds y: [ :x | (0.2 * x) cos * 2 ]. ds noDot. ds interaction popupText: 'cosinus'. ds connectColor: Color red. b add: ds.
b minY: -4. b maxY: 4. b minX: -25.
b build. -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-=
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-=
b := RTGrapherBuilder new.
ds := RTStackedDataSet new. ds interaction popup. ds points: #(600 470 170 430 300). ds barShape width: 20; color: Color lightGreen. b add: ds.
b axisX noLabel; noTick. b axisY noDecimals.
b addPlugin: RTMeanDevVarPlugin new. b build -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-=
Another example: -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= b := RTGrapherBuilder new. b extent: 300 @ 200.
5 timesRepeat: [ ds := RTStackedDataSet new. ds noDot. ds points: ((1 to: 500) collect: [ :i | 50 atRandom - 25 ]) cumsum. ds connectColor: Color green. b add: ds. ].
b addPlugin: RTMeanDevVarPlugin new. b build. -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-=
The plugin framework exposes to a plugin all the necessary to define a whole range of decorations. For example, variable average lines, linear regression should be trivial to add...
Happy new year! Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.