Ich würde den Graph Builder in Kombination mit dem Schieberegler verwenden, um das Erscheinungsbild des Diagramms zu ändern.Im folgenden Beispiel erstelle ich ein Fenster mit einer Karte und einem Schieberegler, um den Maßstab der Farben interaktiv zu ändern. Ich würde das Skript verwenden, um verschiedene Fenster zu erstellen (natürlich auch mit unterschiedlichen Variablen, aber im Beispiel wird das nicht benötigt).Es funktioniert nur für das zuletzt erstellte Fenster, obwohl ich versuche, die Variablen mithilfe von Namespaces zuzuweisen. Ich habe es anders versucht, aber alles ohne Erfolg. Kann jemand helfen?
Names Default To Here(1);
dtable= Open("$SAMPLE_DATA/SAT.jmp");
name="Map";
For(k=1, k<=10, k++,
If(Namespace Exists(Eval("ns" || name || Char(k))),
//If(k = 10,
// hanlde the max number of allowed namespaces
//);
,
name= name || char(k);
nsRef = New Namespace(Eval("ns" || name ));
Break();
)
);
nsRef << Insert("column", "% Taking (2004)");
nsRef << Insert("min", col min(column(dtable, "% Taking (2004)")));
nsRef << Insert("max", col max(column(dtable, "% Taking (2004)")));
nsRef << Insert("slmin", col min(column(dtable, "% Taking (2004)")));
nsRef << Insert("slmax", col max(column(dtable, "% Taking (2004)")));
datacolumn=column(dtable, nsRef:column );
nsRef << Insert("slider1",
slider box(nsRef:min,nsRef:max,nsRef:slmax,
title= Current Window() << Get Window Title;
ns = NameSpace(Eval("ns" || title));
slmin=ns:slmin;
slmax=ns:slmax;
scale=Matrix( {slmin,slmax} );
scale=scale`;
ns:gb <<SENDTOREPORT></SENDTOREPORT>
Sie bewegen sich in die richtige Richtung. Sie benötigen einen lokalen Speicherplatz, und je nach Aufgabe gibt es hier mehrere Optionen, die ich empfehlen würde:
- Da Sie nur die Legende ändern und sich jedes GB in einem separaten Fenster befindet, besteht eine einfache Methode hierfür darin, den Fensterbereich und den Fenster-Namespace zu verwenden window:slider1 = SliderBox() . Siehe das beigefügte Skript.
- Wenn nur die Legende geändert wird und Sie mehrere GB im Fenster haben, verwenden Sie a < für das Schiebereglerfeld, das einen relativen Verweis auf das entsprechende GB verwendet. Wenn GB und HListBox(TextBox, Sliderbox) in einer VListBox verschachtelt sind, wäre die Funktion etwa so: (this<< parent)<
- Angenommen, Sie haben mehrere GBs mit unterschiedlichen Ys, aber demselben X. Wenn Sie X begrenzen oder eine Zeile für Y1, aber nicht für Y2 ausschließen möchten, sollte jedes GB seine eigene haben Datenfilter-Kontextfeld() , lokaler Datenfilter.
Hoffentlich erfüllt das angehängte Skript, das Fensterbereich verwendet, Ihren aktuellen Bedarf.