Wie kann ich eine sich bewegende Y-Variable für den Graph Builder skripten?Hallo alle,
Ich mache einen Graph Builder mit beweglichen Y-Variablen, die Ausgabe des Graphen sieht so aus:

Aber ich habe Probleme, die Y-Achse in JSL zu skripten.Wie kann ich das tun?
For( i = 1, i <= N Items( NamesList ), i++,
obj = Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables(
X( :TETEST_MONTH ),
X( :TETEST_WEEK, Position( 1 ) ),
Y( :Name ("Y")) , // how do I insert the moving Y variable here ?
Y( :Name ("Y")), // how do I insert the moving Y variable here ?
Color( :TETEST_MONTH )
),
Elements( Position( 1, 1 ), Histogram( X( 2 ), X( 1 ), Y, Legend( 14 ) ) ),
Elements(
Position( 1, 2 ),
Box Plot( X( 2 ), X( 1 ), Y, Legend( 16 ) ),
Line( X( 2 ), X( 1 ), Y, Legend( 17 ) )
),
SendToReport( Dispatch( {}, "400", LegendBox, {Set Title( "" )} ) )
));Betreff: Wie kann ich eine sich bewegende Y-Variable für den Graph Builder skripten?Danke, Jim. Es funktioniert jetzt wunderbar.Betreff: Wie kann ich eine sich bewegende Y-Variable für den Graph Builder skripten?Mein Fehler...... alle gb[i]-Referenzen loswerden und sie in nur gb ändern.
Betreff: Wie kann ich eine sich bewegende Y-Variable für den Graph Builder skripten?Danke Jim. Aber ich zähle immer noch Fehler. Ich vermute, dass etwas mit meiner Segmentierung nicht stimmt.
/* Open a sample data table */
dt = Open( "C:\Users\1.jmp", invisible );
// Find the Y Columns
numericColNamesList = dt << get column names( string, numeric );
For( i = N Items( numericColNamesList ), i >= 1, i--,
If(
Not(
Is Missing( Num( Word( 1, numericColNamesList[i], ":" ) ) ) == 0 &
Word( 2, numericColNamesList[i], ":" ) != ""
),
numericColNamesList = Remove( numericColNamesList, i, 1 )
)
);
// Run the Variance Charts
// With dynamic Y columns and fixed X columns
Fo( i = 1, i <= N Items( numericColNamesList ), i++,
gb = dt << Graph Builder(
Invisible,
Size( 752, 508 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Month ),
Y( Column ( numericColNamesList[i] ) ),
Overlay( :Month )
),
Elements(
Box Plot(
X,
Y,
Legend( 15 ),
Jitter( 0 ),
Outliers( 0 ),
Box Style( "Solid" )
),
Histogram( X, Y, Legend( 12 ) )
));
gb = LIST (gb[i]);
If( i == 1,
Report( gb ) << Save Presentation( "C:\Users\Ann Ann\1.pptx" ),
Report( gb[i] << Save Presentation( "C:\Users\Ann Ann\1.pptx", Append ) )
));
Betreff: Wie kann ich eine sich bewegende Y-Variable für den Graph Builder skripten?Du benutzt
gb = dt << Graph Builder(.........
für jede Ausführung der Graph Builder-Plattform.Es ist kein Vektor von Werten.Jedes Mal, wenn Sie das Graph Builder-Skript ausführen, erstellen Sie einen neuen Wert für die Variable "gb".Das heißt, der Zeiger auf die letzte Instanz von Graph Builder wird bewegt, um auf die neue Instanz von Graph Builder zu zeigen.Es gibt kein gb[1], gb[2] usw., so wie Sie den Code eingerichtet haben.
Eine Möglichkeit, dies zu umgehen, besteht darin, den Codebereich „Präsentation speichern“ innerhalb der anfänglichen For()-Schleife zu verschieben.
Eine andere Möglichkeit, dies zu lösen, besteht darin, in der anfänglichen For()-Schleife die Werte von "gb" nach der Erstellung in einer Liste zu speichern.Zeigen Sie dann in der zweiten For()-Schleife auf die Elemente in der Liste, anstatt auf gb[i] usw.
For( i = 1, i <= N Items( numericColNamesList ), i++,
gb = dt << Graph Builder(
Size( 900, 850 ),
Show Control Panel( 0 ),
Variables(
X( :MONTH ),
X( :WEEK, Position( 1 ) ),
Y( Column( numericColNamesList[i] ) ),
Y( Column( numericColNamesList[i] ) ),
Color( :MONTH )
),
Elements( Position( 1, 1 ), Histogram( X( 2 ), X( 1 ), Y, Legend( 14 ) ) ),
Elements(
Position( 1, 2 ),
Box Plot( X( 2 ), X( 1 ), Y, Legend( 16 ) ),
Line( X( 2 ), X( 1 ), Y, Legend( 17 ) )
),
SendToReport( Dispatch( {}, "400", LegendBox, {Set Title( "" )} ) )
);
If( i == 1,
Report( gb ) << Save Presentation( "C:\Users\Ann Ann\1.pptx" ),
Report( gb[i] << Save Presentation( "C:\Users\Ann Ann\1.pptx", Append ) )
);
);
Open( "C:\Users\Ann Ann\1.pptx" );Betreff: Wie kann ich eine sich bewegende Y-Variable für den Graph Builder skripten?Danke Jim.
Aber ich habe keine Ahnung, warum dieser Fehler mich während des Debuggens immer wieder aufforderte.

For( i = 1, i <= N Items( numericColNamesList ), i++,
gb = dt << Graph Builder(
Size( 900, 850 ),
Show Control Panel( 0 ),
Variables(
X( :MONTH ),
X( :WEEK, Position( 1 ) ),
Y( Column( numericColNamesList[i])) ,
Y( Column( numericColNamesList[i])) ,
Color( :MONTH )
),
Elements( Position( 1, 1 ), Histogram( X( 2 ), X( 1 ), Y, Legend( 14 ) ) ),
Elements(
Position( 1, 2 ),
Box Plot( X( 2 ), X( 1 ), Y, Legend( 16 ) ),
Line( X( 2 ), X( 1 ), Y, Legend( 17 ) )
),
SendToReport( Dispatch( {}, "400", LegendBox, {Set Title( "" )} ) )
));
Report(gb[1]) << Save Presentation( "C:\Users\Ann Ann\1.pptx" );
For( i = 2, i <= N Items( numericColNamesList ), i++,
Report (gb[i] << Save Presentation( "C:\Users\Ann Ann\1.pptx", Append )
));
Open( "C:\Users\Ann Ann\1.pptx" );
//wait(0);
//obj << close window();
Betreff: Wie kann ich eine sich bewegende Y-Variable für den Graph Builder skripten?Angenommen, "NamesList" enthält die Y-Spalten, die Sie als Y-Spalten verwenden möchten, und ersetzen Sie sie
:Namen( "Y" )
mit:
als Spalte( Namensliste[i] )