Ich würde den Graph Builder in Kombination mit dem Schieberegler verwenden, um das Erscheinungsbild des Diagramms zu ändern.Im Beispiel unten erstelle ich ein Fenster mit einer Karte und einem Schieberegler, um die Skalierung der Farben interaktiv zu ändern. Ich würde das Skript verwenden, um verschiedene Fenster zu erstellen (natürlich auch mit verschiedenen Variablen, aber im Beispiel wird dieses Zeug 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 brauchen einen lokalen Raum, 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 darin, den Fensterbereich, den Fensternamensraum, zu verwenden Fenster: Slider1 = SliderBox() . Siehe beigefügtes Skript.
- Wenn nur die Legende geändert wird und Sie mehrere GBs 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 so etwas wie (this<< parent)<
- Angenommen, Sie haben mehrere GBs mit unterschiedlichen Ys, aber demselben X. Wenn Sie X einschränken oder eine Zeile für Y1, aber nicht für Y2 ausschließen möchten, sollte jedes GB sein eigenes haben Datenfilter-Kontextfeld() , lokaler Datenfilter.
Hoffentlich wird das angehängte Skript, das den Fensterbereich verwendet, Ihren aktuellen Bedarf decken.