Charting graphs

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Charting graphs

abergel
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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



Reply | Threaded
Open this post in threaded view
|

Re: Charting graphs

HilaireFernandes
Nice!

Le 05/01/2015 00:22, Alexandre Bergel a écrit :
>
> RTGraphBuilder went through major improvements.
> - min and max may be specified.
> - plugins to add some decoration (average line, standard deviation
> range, ticks lines, …)
>


--
Dr. Geo - http://drgeo.eu
iStoa - http://istoa.drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Charting graphs

stepharo
In reply to this post by abergel
Really really nice.
Continue to push Grapher and trying to reproduce "stupid" charts is the way to stress its design!
Do you have this description somewhere so that I can blog on it?

Stef

Le 5/1/15 00:22, Alexandre Bergel a écrit :
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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply | Threaded
Open this post in threaded view
|

Re: Charting graphs

abergel
Give me a couple of days, and I will update the Agilevisualization chapter.

Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Jan 6, 2015, at 2:49 PM, stepharo <[hidden email]> wrote:

Really really nice.
Continue to push Grapher and trying to reproduce "stupid" charts is the way to stress its design!
Do you have this description somewhere so that I can blog on it?

Stef

Le 5/1/15 00:22, Alexandre Bergel a écrit :
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:
<Mail Attachment.png>
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.
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 
 

<Mail Attachment.png>
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 

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:
<Mail Attachment.png>
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 
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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] Charting graphs

Tudor Girba-2
In reply to this post by abergel
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 <[hidden email]> 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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [Pharo-dev] Charting graphs

abergel
Hi Doru,

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?

Yes. Currently, spider chart shares very little from what we have. This is why it deserves its own builder. Maybe this will change in the future, but for now it works well.
But the way, we call Kiviat what you call Spider chart. Just have a look at RTKiviatBuilder. 

Here is a screenshot for people who do not understand what we are talking about :-)

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.

Yes!
Done!

- I would just call the class RTGrapher

Yes, done!


- I do not quite understand how to distinguish the difference between DataSet and StackedDataSet.

Yeah, not easy to grasp. Consider an histogram and a scatter plot.
You will define an histogram as a list of values, e.g,. 4, 5, 6, 7
You will define a scatterplot as a list of points, e.g., 2 @ 3, 5 @ 6, …

An histogram is obtained from a list of objects, and a function Y to obtain the values.
A scatter plot is obtained from a list of objects, and _two_ functions X and Y to obtain the points.

When you do not need to specify an X, e.g., an histogram, then you need a RTStackedDataSet.
When you need to specify an X, e.g., a scatter plot, then you need a RTDataSet.

Is it clear? Maybe the vocabulary we use is not obvious. 

Cheers,
Alexandre


Cheers,
Doru



On Mon, Jan 5, 2015 at 12:22 AM, Alexandre Bergel <[hidden email]> 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:
<Screen Shot 2015-01-04 at 8.08.05 PM.png>
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.
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 
 

<Screen Shot 2015-01-04 at 8.13.51 PM.png>
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 

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:
<Screen Shot 2015-01-04 at 8.17.51 PM.png>
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 
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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






--

"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

Reply | Threaded
Open this post in threaded view
|

Re: Charting graphs

abergel
In reply to this post by stepharo
Stef, I have updated the Grapher chapter in Agilevisualization:

You are now ready to blog :-)

Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Jan 6, 2015, at 2:49 PM, stepharo <[hidden email]> wrote:

Really really nice.
Continue to push Grapher and trying to reproduce "stupid" charts is the way to stress its design!
Do you have this description somewhere so that I can blog on it?

Stef

Le 5/1/15 00:22, Alexandre Bergel a écrit :
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:
<Mail Attachment.png>
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.
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 
 

<Mail Attachment.png>
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 

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:
<Mail Attachment.png>
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 
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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.