Scripting Column Switcher, um Änderungen in der Y-Variablen in einem Kontrolldiagramm zu erreichenIch habe eine Datentabelle mit zahlreichen Antworten (zahlreiche Spalten). Alle sind für die Kontrollkarte geeignet.
Wenn ich einen Spaltenumschalter hinzufüge, kann ich erwartungsgemäß problemlos zwischen Antworten (verschiedenen Spalten) wechseln, um das Kontrolldiagramm zu aktualisieren, sodass ich mir sofort die Variable ansehen kann, die mich interessiert.
Das einzige Manko besteht darin, dass die x-Achse standardmäßig immer die gleiche Länge hat, die Anzahl der Daten in jeder Spalte jedoch variiert. manchmal viel, manchmal aber auch nicht.
Um die x-Achse an die Anzahl der Daten in einer bestimmten Spalte anzupassen, kann ich Folgendes tun:
nData = N Rows() - Col N Missing( Column( 1 ) );
ccReport = cc << Report;
axisbox = ccReport[axis box( 1 )];
axisbox << Max( nData + 3 ) << inc( Ceiling( (nData + 3) / 15 ) );
Das funktioniert gut für das erste Kontrolldiagramm, aber sobald ich mit dem Spaltenumschalter eine andere Variable auswähle, ist die x-Achse wieder zu lang und kehrt zur Standardeinstellung zurück. (Wenn N Rows() beispielsweise 3.000 beträgt, ich aber für eine Variable 60 Daten habe, sieht das resultierende Diagramm albern aus, weil die x-Achse viel zu lang ist.)
Wie kann ich mit JSL ein Skript erstellen, sodass ich jedes Mal, wenn ich mit dem Spaltenumschalter eine andere Spalte auswähle, den obigen Code (oder einen gleichwertigen Code) verwenden kann, um die x-Achse so anzupassen, dass sie sich gut an die Anzahl der tatsächlichen Daten für die betreffende Variable anpasst?
Ich sehe, dass diese Syntax „ColumnSwitcherObject << Get Current;“ Gibt den Namen der Spalte zurück, aber wie greife ich jedes Mal mit JSL zu, wenn ich mit dem Spaltenumschalter aktualisiere?
Vielen Dank für jede Hilfe.
Automatisierung und SkripterstellungMassenanpassungQualitäts- und VerfahrenstechnikBetreff: Skript für den Spaltenumschalter erstellen, um Änderungen in der Y-Variablen in einem Kontrolldiagramm zu erreichenDanke, Jim. Es funktioniert jetzt großartig.
Betreff: Skript für den Spaltenumschalter erstellen, um Änderungen in der Y-Variablen in einem Kontrolldiagramm zu erreichenAnstatt zu setzen
ccReport = cc << Report;
Ich denke, Sie sollten bei der Verwendung von der Quelle darauf verweisen
report(cc)[AxisBox(1)] << max(X+1);
Unten finden Sie ein Beispielskript, das die korrekten Referenzen aus cc abruft
names default to here(1);
dt=current data table();
cc = Control Chart Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Show Capability( 0 ),
Variables( Y( :weight ) ));
cs = cc << Column Switcher( :weight, {:height, :weight} );
report(cc)[FrameBox(1)]<< add graphics script( show(cs<<GET current=""></GET>Betreff: Skript für den Spaltenumschalter erstellen, um Änderungen in der Y-Variablen in einem Kontrolldiagramm zu erreichenDanke, Jim.
Wenn ich die Framebox verwende, kann ich, wie Sie vorschlagen, tatsächlich im eingebetteten Protokoll die Spalte anzeigen, die zum Aktualisieren des Kontrolldiagramms ausgewählt ist. (Ich habe 12 Spalten, zwischen denen ich wechseln möchte, und jede Spalte hat eine andere Anzahl an Daten, daher möchte ich die x-Achse jeweils neu skalieren, um die Anzahl der Daten in der ausgewählten Spalte widerzuspiegeln.)
Ich erfasse die ausgewählte Spalte ganz einfach:
ccReport[FrameBox(1)]<< add graphics script(
cName = cs << Get Current;
show(cName);
If(cName == "JW004",
show("JW004 selected");
,
cName == "JW001",
show("JW001 selected");
,
);
In anderen Teilen der Syntax kann ich die x-Achse beispielsweise einfach ändern
ccReport = cc << Report;
axisbox = ccReport[axis box( 1 )];
axisbox << max(x+1); // where x is the no. of data in the column
Das Problem tritt auf, wenn ich die Axisbox-Syntax in die Framebox einfüge. Einer der Fehler ist
Send Expects Scriptable Object in access or evaluation of 'Send' , ccReport[axis box( 1 )] << /*###*/Max( 200 ) /*###*/
Ich habe ein paar Dinge ausprobiert, aber ohne Erfolg. Haben Sie Tipps, damit ich weiterhin über das Grafikskript auf das Achsenfeld zugreifen kann? Wäre sehr dankbar.
Betreff: Scripting Column Switcher, um Änderungen in der Y-Variablen in einem Kontrolldiagramm zu erreichenIch denke, Sie können Ihr Problem lösen, indem Sie ein Grafikskript an die FrameBox() im Kontrolldiagramm anhängen.Das Skript wird immer dann ausgeführt, wenn in der FrameBox() etwas geändert wird.Unten finden Sie ein einfaches Skript, auf dem Sie meiner Meinung nach aufbauen können sollten
names default to here(1);
dt=current data table();
cc = Control Chart Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Show Capability( 0 ),
Variables( Y( :weight ) ));
cs = cc << Column Switcher( :weight, {:height, :weight} );
report(cc)[FrameBox(1)]<< add graphics script( show(cs<<GET current=""></GET>