Hi Alex,

In Eyesee, we have the concept of composite diagrams i.e. you can have multiple charts in the same diagram with individual y axes (see attached screenshot). This is a handy concept because not only you could have two charts on the same diagram but each chart has its own axis. For comparing disparate values, this is convenient because one does not need to think about normalizing Y values of charts to the same scale. One example could be showing trends of software metrics over time.

I saw that you ported more code from Charter to Grapher so I am having a look at the examples. Is it possible to have composite chart diagrams with Grapher? Do you plan to add this feature?

Here is a exemplary script that illustrates the need for composite diagrams:

|  grapher minDate ds random dates grapherBlock|
dates := (Array with: Date today  with: Date yesterday with: Date tomorrow) collect: #asDateAndTime.
minDate := dates min.
random := Random seed: 10.

grapher := RTGrapherBuilder new
extent: 300 @ 200;
yourself.
grapherBlock := [:index | 
ds := RTDataSet new.
ds interaction popup.
ds dotShape ellipse color: (Color red alpha: 0.5); size: 10.
ds points: dates sorted;
x: [ :aDate | aDate asUnixTime - minDate asUnixTime ];
connectColor: (Color random alpha: 0.5);
y: [ :d | (random nextInt: 100) * index].
grapher add: ds].

100 to: 103 do: grapherBlock.
1 to: 3 do: grapherBlock.

grapher axisConfiguration noDecimals.
grapher axisY.
grapher axisConfiguration
labelRotation: -30;
title: '';
numberOfLabels: dates size - 1;
labelConvertion: [ :v | (DateAndTime fromUnixTime: v + minDate asUnixTime) asDate ] .
grapher axisX; build.
grapher view open



regards,

Usman

Inline image 2
Inline image 3
Inline image 1