Brauche Hilfe bei einem Skript zum Übertragen der Linien der Y-Achse im Graph Builder, wenn die Layoutfunktion „Seite“ verwendet wird und die Y-Achse unabhängig bleibtHallo zusammen,
Die neue Möglichkeit, die Panels im Graph Builder zu stapeln, ist zwar erstaunlich, aber ein Schlüssel zu dieser Großartigkeit ist, die Y-Achsen unabhängig voneinander zu halten. Wenn Sie jedoch viele Panels (Ebenen) haben und Gitternetzlinien auf der Y-Achse hinzufügen möchten, müssen Sie dies einzeln tun, was schrecklich ist. Irgendwelche Ideen für ein Skript, mit dem Sie jedes Panel indizieren und Gitternetzlinien unabhängig voneinander hinzufügen können?
Hier können Sie sehen, dass ich (im großen Klassendatensatz) die altmodische Methode verwendet habe, indem ich die Achseneinstellungen kopiert und per Broadcast eingefügt habe. Während dadurch die Gitternetzlinien hinzugefügt werden, werden alle Bereiche der Y-Achse auf dieselben Werte wie in den kopierten Bedienfeldeinstellungen gesetzt.

Danke für alle Ideen!
Steve
Automatisierung und SkriptingDatenexploration und -visualisierungBetreff: Brauche Hilfe mit einem Skript zum Übertragen der Linien der Y-Achse im Graph Builder, wenn die Layoutfunktion „Seite“ verwendet wird und die Y-Achse unabhängig bleibtVerwenden Sie XPath, um auf die Achsenboxen zu verweisen, die Sie interessieren (X-, Y-Achse oder beide), und machen Sie dann mit dieser Liste von Achsenboxen, was Sie wollen. Dieses Beispiel aktiviert Major Grid für die Y-Achse auf allen Frameboxen
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(893, 542),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Page(:age, Levels per Row(3)), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)))
);
abs = Report(gb) << XPath("//AxisBox");
yaxis = abs[2::NItems(abs)::2];
yaxis << Show Major Grid(1);

Betreff: Brauche Hilfe mit einem Skript zum Übertragen der Linien der Y-Achse im Graph Builder, wenn die Layoutfunktion „Seite“ verwendet wird und die Y-Achse unabhängig bleibtDas ging schnell, Jarmo! Mir gefällt deine Lösung besser, aber hier ist eine andere Möglichkeit mit Eval(Parse()).
Names Default To Here( 1 );
//Manually add your reference line to the top left panel of the graph builder.
//Then run this script with the graph builder report in focus.
axisList = Current Report() << XPath( "//AxisBox" );
//Grab axis specifications from vertical axis of first panel
//(vertical axes are even-numbered items; horizontal axes are odd)
axspecList = axisList[2] << Get Script();
//find the Reference Line among the other specifications
For( i = 1, i <= N Items( axspecList ), i++,
If( Left( Char( axspecList[i] ), 12 ) == "Add Ref Line",
rlindex = i;
Break();
)
);
//Reference Line specification as string
rlstr = Char( axspecList[rlindex] );
//Apply Reference Line specification to the remaining panels
For( j = 4, j <= N Items( axisList ), j = j + 2,
estr = "axisList[" || Char( j ) || "] <<" || rlstr;
Eval( Parse( estr ) );
);