Hier ist ein Beispiel, bei dem die linke und die rechte Achse im Graph Builder verknüpft sind. Alles, was benötigt wird, ist, dem Graph Builder ein einfaches Skript hinzuzufügen, das entweder die linke oder die rechte Achse auf Änderungen prüft und dann die verknüpften Achsen zurücksetzt.


Names Default To Here( 1 );
// Create Sample Table
dt = New Table( "Linked",
Add Rows( 100 ),
New Column( "Fahrenheit",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[95, 30, 103, 76, -36, 18, -13, 52, 122, 84, -13, 97, 10, -21, 37, 86,
102, 10, 38, 56, 81, 91, 21, -13, 47, 34, -22, 28, 41, 88, 58, -8, 22,
119, 48, 37, 16, -18, 79, 51, 46, 1, 37, 13, -25, 45, 62, 125, 1, 26, 63,
49, -22, 121, 4, 113, 104, 57, 1, -30, 46, -7, 92, 101, 29, 79, 33, 108,
11, 60, 21, -35, -33, 39, 80, 8, -29, 113, 130, 41, 76, 60, 108, -17, 43,
-37, 127, 119, 37, -5, 13, 90, 13, -40, 94, 49, 28, -14, 115, 58]
)
),
New Column( "Celsius",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( (5 * (:Fahrenheit - 32)) / 9 )
),
New Column( "X",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[66, 89, 6, 85, 41, 42, 54, 10, 47, 43, 78, 35, 12, 92, 87, 57, 89, 12,
42, 27, 21, 82, 21, 16, 45, 100, 49, 97, 37, 95, 100, 72, 23, 57, 25, 37,
1, 32, 53, 48, 35, 43, 61, 52, 34, 65, 93, 78, 34, 84, 55, 47, 76, 22,
10, 1, 57, 47, 34, 11, 97, 20, 4, 15, 37, 85, 99, 26, 26, 38, 20, 31, 66,
79, 79, 49, 59, 97, 87, 55, 76, 96, 47, 79, 68, 33, 24, 38, 8, 75, 19,
70, 48, 43, 95, 74, 1, 51, 85, 23]
)
)
);
// Run Graph Builder
gb = Graph Builder(
Size( 528, 454 ),
Show Control Panel( 0 ),
Variables( X( :X ), Y( :Fahrenheit ), Y( :Celsius, Position( 1 ), Side( "Right" ) ) ),
Elements(
Points( X, Y( 1 ), Legend( 14 ) ),
Smoother( X, Y( 1 ), Legend( 15 ) ),
Points( X, Y( 2 ), Legend( 16 ) ),
Smoother( X, Y( 2 ), Legend( 17 ) )
)
);
gbr = gb << report;
//Initialize the critical axis values
fmax = gbr[axisbox( 2 )] << get max;
fmin = gbr[axisbox( 2 )] << get min;
cmax = gbr[axisbox( 3 )] << get max;
cmin = gbr[axisbox( 3 )] << get min;
fmaxh = fmax;
fminh = fmin;
cmaxh = cmax;
cminh = cmin;
// Check for change and if found, reset alternate axis
gbr[framebox( 1 )] << add graphics script(
fmax = gbr[axisbox( 2 )] << get max;
fmin = gbr[axisbox( 2 )] << get min;
cmax = gbr[axisbox( 3 )] << get max;
cmin = gbr[axisbox( 3 )] << get min;
If( cmax != cmaxh | cmin != cminh,
gbr[axisbox( 2 )] << max( (9 * cmax) / 5 + 32 );
gbr[axisbox( 2 )] << min( (9 * cmin) / 5 + 32 );
);
If( fmax != fmaxh | fmin != fminh,
gbr[axisbox( 3 )] << max( (5 * (fmax - 32)) / 9 );
gbr[axisbox( 3 )] << min( (5 * (fmin - 32)) / 9 );
);
fmaxh = fmax;
fminh = fmin;
cmaxh = cmax;
cminh = cmin;
)
;