So, attending to the request Doru made, here's something similar to the example he
provided in EyeSee... All the methods were already implemented but most of them didn't
have a clear accesor to modify them.
So, if you just load the last version of GraphET and do this:
builder := GETDiagramBuilder new. grouped := { #item1->{10 . 12 . 11 . 14 } .
#item2-> { 1 . 1 . 20 } . #item3->{ 1 . 1 . 1 . 1 . 1} }. diag :=
(GETVerticalBarDiagram new) modelLabels: [:each | each key ]; y: [:each | each value
size]; yAxisLabel: 'Count'; valueAxis;height:200;spacing:20; yAxisOnRight; color:
Color veryLightGray; axisColor: Color veryLightGray; models: grouped; yourself. diag2 :=
(GETVerticalBarDiagram new) y: [:each | each value sum]; regularAxis;height:
200;spacing:20;yAxisLabel: 'Sum';color: (Color red); axisColor: (Color red);
models: grouped; yourself. (builder unionDiagram) add: diag;add: diag2. builder open
You'll see it's very similar. There's two things I couldn't replicate so
far, one of them is the rotating labels, as Roassal can't rotate labels yet, and the
second one was the GapFraction, as axis in GraphET need some work yet, so implementing
that kind of thing would be hard. I think I'll dedicate to a proper axis in the next
couple of weeks.
Cheers :)!
> >>> ---------- Forwarded message
----------
> >>> From: Tudor Girba <tudor(a)tudorgirba.com>
> >>> Date: Sat, Jan 4, 2014 at 10:39 PM
> >>> Subject: Re: [Pharo-dev] Feature for request for GraphET?
> >>> To: Pharo Development List <pharo-dev(a)lists.pharo.org>
> >>>
> >>>
> >>> Here is one thing I would want: a correspondent Graph-ET
> >>> functionality to make something like this EyeSee script work as
> >>> in
> >>> the first attached picture.
> >>>
> >>> renderer := ESDiagramRenderer new.
> >>> grouped := { #item1->{10 . 12 . 11 . 14 } . #item2-> { 1 . 1 .
20
> >>> }
> >>> . #item3->{ 1 . 1 . 1 . 1 . 1} }.
> >>> diag := (ESVerticalBarDiagram new)
> >>> identifier: [:each | each key ];
> >>> y: [:each | each value size];
> >>> yAxisLabel: 'Count';
> >>> valueAxis;
> >>> rightYAxis;
> >>> defaultColor: Color veryVeryLightGray;
> >>> axisColor: Color veryVeryLightGray;
> >>> models: grouped;
> >>> rotatedLabels: true;
> >>> yourself.
> >>> diag2 := (ESVerticalBarDiagram new)
> >>> y: [:each | each value sum];
> >>> regularAxis;
> >>> yAxisLabel: 'Sum';
> >>> gapFraction: 2 / 3;
> >>> defaultColor: (Color red);
> >>> axisColor: (Color red);
> >>> models: grouped;
> >>> yourself.
> >>> (renderer compositeDiagram)
> >>> add: diag;
> >>> add: diag2.
> >>> renderer open
> >>>
> >>>
> >>> <Screenshot 2014-01-04 22.31.57.png>
> >>>
> >>>
> >>> The best I could produce with Graph-ET is this (I commented out
> >>> the
> >>> message to which I did not find a correspondent):
> >>>
> >>> builder := GETDiagramBuilder new.
> >>> grouped := { #item1->{10 . 12 . 11 . 14 } . #item2-> { 1 . 1 .
20
> >>> }
> >>> . #item3->{ 1 . 1 . 1 . 1 . 1} }.
> >>> diag := (GETVerticalBarDiagram new)
> >>> "identifier: [:each | each key ];"
> >>> y: [:each | each value size];
> >>> yAxisLabel: 'Count';
> >>> valueAxisLine;
> >>> "rightYAxis;"
> >>> color: Color veryLightGray;
> >>> "axisColor: Color veryLightGray;"
> >>> models: grouped;
> >>> "rotatedLabels: true;"
> >>> yourself.
> >>> diag2 := (GETVerticalBarDiagram new)
> >>> y: [:each | each value sum];
> >>> regularAxis;
> >>> yAxisLabel: 'Sum';
> >>> "gapFraction: 2 / 3;"
> >>> color: (Color red);
> >>> "axisColor: (Color red);"
> >>> models: grouped;
> >>> yourself.
> >>> (builder compositeDiagram)
> >>> add: diag;
> >>> add: diag2.
> >>> builder open
> >>>
> >>> <Screenshot 2014-01-04 22.36.40.png>
> >>>
> >>> Cheers,
> >>> Doru