Wie kann ich eine bewegliche Y-Variable für den Graph Builder skripten?Hallo zusammen,
Ich verwende einen Diagrammersteller mit beweglichen Y-Variablen. Die Ausgabe des Diagramms sieht folgendermaßen aus:

Aber ich habe Schwierigkeiten, 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 bewegliche Y-Variable für den Graph Builder skripten?Danke, Jim. Es funktioniert jetzt wunderbar.Betreff: Wie kann ich eine bewegliche Y-Variable für den Graph Builder skripten?Mein Fehler: Entfernen Sie alle gb[i]-Referenzen und ändern Sie sie in nur gb.
Betreff: Wie kann ich eine bewegliche Y-Variable für den Graph Builder skripten?Danke, Jim. Aber ich kontere immer noch einen Fehler. Ich vermute, dass mit meiner Segmentierung etwas 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 bewegliche Y-Variable für den Graph Builder skripten?Du benutzt
gb = dt << Graph Builder(.........
für jede Ausführung der Graph Builder-Plattform.Es handelt sich nicht um einen Wertevektor.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 so verschoben, dass er auf die neue Instanz von Graph Builder zeigt.Es gibt kein gb[1], gb[2] usw., wie Sie den Code eingerichtet haben.
Eine Möglichkeit, dies zu umgehen, besteht darin, den Bereich „Präsentation speichern“ des Codes in die anfängliche For()-Schleife zu verschieben.
Eine andere Möglichkeit, dieses Problem 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 bewegliche 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 bewegliche 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( NamesList[i] )