Betreff: JSL: Wie man ein Graph-Update mit Combo-Box und Next/Prev-Buttons skriptetHallo, ich suche weitere Hilfe zu diesem Thema?
Ich versuche, nur eine bestimmte Anzahl von Spalten auf meiner xlist anzuzeigen, anstatt alle Spalten, die in beliebiger Reihenfolge angeordnet sind
xlist= {"crim", "nox", "radial"};
Mit dem obigen Skript werden nur die ersten 3 Spalten gezeichnet, die in diesem Fall "crim", "zn" und "indus" sind und nicht die, die ich oben erwähnt habe.
Gibt es eine Problemumgehung dafür?
Danke.
Betreff: JSL: Wie man ein Graph-Update mit Combo-Box und Next/Prev-Buttons skriptetUpdate: OK, also musste ich etwas mehr in meinem Scripting Guide über Append, Prepend, Sib Append und Sib Prepend lesen. Nachdem ich dies gelesen hatte, ging es darum, zu bestimmen, welcher Containerbox ich das aktualisierte Diagramm voranstellen musste. Wenn Sie also andere Container-Boxen in einem Fenster haben möchten, müssen Sie möglicherweise den Befehl Sib Prepend() verwenden. Macht Sinn, jetzt wo ich es sehe.
Das beigefügte JSL macht alles, was ich beabsichtigt habe, falls jemand interessiert ist.
Danke!,
DS
Betreff: JSL: Wie man ein Graph-Update mit Combo-Box und Next/Prev-Buttons skriptetHallo @ian_jmp ,
Ich hoffe, Sie können mir dabei helfen, dieses Skript richtig zum Laufen zu bringen, wenn ich mehr Elemente im neuen Fenster habe. Ich war in der Lage, mein eigenständig funktionierendes Konzeptskript in ein größeres Skript zu verschieben, das die Daten partitioniert und die Ergebnisse anzeigt. Ich hänge meinen JSL-Code als Datei an, das könnte so einfacher sein. Es öffnet das Boston Housing und Sie können die Datentabelle und dann X-Faktoren und Y-Antwort auswählen und einen Validierungsteil und die maximale Anzahl der zu versuchenden Splits festlegen.
Der Code funktioniert, um die gewünschte Ausgabe zu generieren (unten):

Aber wenn Sie durch die Parameter blättern, wird das Layout des Fensters wie folgt neu angeordnet:

Ich möchte das gleiche Layout wie im ersten Screenshot beibehalten, aber die Optionen Prepend und Append behalten nicht das richtige Layout bei. Jede Hilfe wird sehr geschätzt.
Danke!,
DS
Betreff: JSL: Wie man ein Graph-Update mit Combo-Box und Next/Prev-Buttons skriptetHallo @ian_jmp ,
Das hat genau gewirkt, danke! Ich werde den funktionierenden Code unten posten und ihn als Lösung markieren, da dieser Code genau das tut, was ich beabsichtigt hatte, als ich mit der Arbeit an diesem Teil begann.
Danke!,
DS
Aktualisierter Code mit Prepend statt Append.
Names Default To Here( 1 );
dt = Open("$sample_data/Boston housing.jmp");
//dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
gb_default = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, 1 ) ), Y( Column( dt, 2 ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
gb_change = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, xcol ) ), Y( Column( dt, ycol ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
nw = New Window( "Interactive Graph",
gb = gb_default;
lbcontent = Lineup Box( N Col( 5 ),
Spacer Box( Size( 1, 0 ) ),
Text Box( "X", <<JUSTIFY text=""></JUSTIFY>Betreff: JSL: Wie man ein Graph-Update mit Combo-Box und Next/Prev-Buttons skriptetProbieren Sie 'Prepend' statt 'Append' aus.
Betreff: JSL: Wie man ein Graph-Update mit Combo-Box und Next/Prev-Buttons skriptetHallo alle,
Also, ich war in der Lage, einen früheren Diskussionsthread zu finden Hier Wo @MS einem anderen Benutzer geholfen, etwas Ähnliches zu tun. Ich war in der Lage, diese Idee abzuarbeiten und sie so zu modifizieren, dass sie mehr oder weniger so funktioniert, wie ich es beabsichtige. unten ist der Code, der diese Funktionalität ermöglicht, mit Ausnahme eines kleinen "Fehlers".
Der Code ermöglicht es dem Benutzer, die X-, Y-Elemente auszuwählen, die grafisch dargestellt werden sollen, und aktualisiert das Diagramm, wenn die Combo-Boxen geändert werden oder wenn die Zurück/Weiter-Schaltflächen gedrückt werden. In dieser Hinsicht funktioniert der Code also wie beabsichtigt.
Nachdem Sie eine Änderung vorgenommen haben, um etwas anderes zu zeichnen, tauscht das Inhaltsfeld des Diagrammerstellers die Positionen mit dem Auswahlfeld Lineup, das die Kombinationsfelder/Schaltflächenfelder enthält. Ich möchte das Lineup-Feld, das die Optionen zum Ändern des Diagramms enthält, am unteren Rand des Fensters behalten und bin mir nicht sicher, wie ich das machen soll.
Alle Vorschläge, wie dies funktioniert, sind sehr willkommen! (Code am Ende).
Danke!,
DS
Startfenster (mit Option unten):

Aktualisiertes Fenster, nachdem eine Änderung an den X- oder Y-Kombinationsfeldern oder den Schaltflächen Zurück/Weiter vorgenommen wurde:

Hier ist der Code:
Names Default To Here( 1 );
//dt = open("$sample_data\Boston Housing.jmp");//In case the file isn't already open.<BR />
dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
gb_default = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, 1 ) ), Y( Column( dt, 2 ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
gb_change = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, xcol ) ), Y( Column( dt, ycol ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
nw = New Window( "Interactive Graph",
gb = gb_default;
lbcontent = Lineup Box( N Col( 5 ),
Spacer Box( Size( 1, 0 ) ),
Text Box( "X", <<JUSTIFY text=""></JUSTIFY>Betreff: JSL: Wie man ein Graph-Update mit Combo-Box und Next/Prev-Buttons skriptetHallo @DonMcCormack ,
Ja, das würde sicher funktionieren, aber ich möchte eine automatische Aktualisierung des Diagramms, wenn der Benutzer auf die Schaltflächen Next/Prev klickt oder einen anderen Satz von Variablen aus dem Kombinationsfeld auswählt. Im Wesentlichen versuche ich, die Funktionalität der PCA-Plattform neu zu erstellen, sie jedoch für die Integration in andere Skripte zu verallgemeinern.
DS
Betreff: JSL: Wie man ein Graph-Update mit Combo-Box und Next/Prev-Buttons skriptetWarum nicht den Column Switcher verwenden?
JSL: So erstellen Sie ein Skript für eine Diagrammaktualisierung mit einem Kombinationsfeld und den Schaltflächen „Weiter/Zurück“.Hallo alle,
Ich arbeite an einem größeren Satz JSL-Code und bin daran interessiert, ihm einige Funktionen hinzuzufügen, damit der Benutzer durch verschiedene Ansichten blättern kann – etwa das, was man tun kann, wenn man durch die verschiedenen Komponenten der PCA-Plattform blättert, siehe Bildschirm Aufnahme unten.

Ich weiß, dass ich ein paar Kombinationsfelder mit den relevanten Spalten aus der Datentabelle benötige, bin mir aber nicht sicher, wie ich das Diagramm wie in der PCA-Plattform automatisch aktualisieren lassen oder wie ich das Schaltflächenfeld „Weiter“ richtig aufrufen kann. Ich möchte auch ein Feld mit der Schaltfläche „Zurück“ hinzufügen, damit der Benutzer einfacher in der Ansicht zurückgehen kann.
Wenn jemand Vorschläge oder Ideen zur Umsetzung hat, wäre ich für Hilfe dankbar. Es ist mir nicht gelungen, nach dieser Funktionalität zu suchen oder in dem mir zur Verfügung stehenden Skriptindex oder Skripthandbuch viel darüber zu finden.
Danke!,
DS
UPDATE: Ich komme näher und habe einen Code, der die Liste im Kombinationsfeld durchläuft, das ist also ziemlich einfach (siehe unten). Ich habe immer noch Probleme damit, dass das Diagramm automatisch aktualisiert wird. Die Absicht besteht darin, dass sich die y-Variable im Diagramm automatisch ändert, wenn der Benutzer auf „Weiter“ oder „Zurück“ klickt. Übrigens verwende ich zum Testen die Datei Boston Housing.jmp.
Names Default To Here( 1 );
dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
nw = New Window( "interactive Graph builder", V List Box( vlb1 = V List Box(), vlb2 = V List Box() ) );
xcol = 1;
ycol = 2;
lbcontent = V List Box(
Lineup Box( N Col( 5 ),
Text Box( "Select Params", <<SET font="" size=""></SET>
Automatisierung und Skripterstellung