如何為圖形生成器編寫移動的 Y 變量腳本?大家好,
我正在做一個帶有移動 Y 變量的圖形生成器,圖形的輸出將如下所示:

但是,我正在努力用 JSL 編寫 Y 軸腳本。我該怎麼做?
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( "" )} ) )
));回复:如何為圖形生成器編寫移動的 Y 變量腳本?謝謝你,吉姆。 它現在工作得很好。回复:如何為圖形生成器編寫移動的 Y 變量腳本?我的錯誤……刪除所有 gb[i] 引用並將它們更改為 gb。
回复:如何為圖形生成器編寫移動的 Y 變量腳本?謝謝,吉姆。 但我仍然遇到錯誤。 我想我的細分可能有問題。
/* 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 ) )
));
回复:如何為圖形生成器編寫移動的 Y 變量腳本?您正在使用
gb = dt << 圖形生成器(.........
對於 Graph Builder Platform 的每次執行。它不是值的向量。每次運行 Graph Builder 腳本時,都會為變量“gb”創建一個新值。也就是說,指向 Graph Builder 的最後一個實例的指針被移動到指向 Graph Builder 的新實例。沒有 gb[1]、gb[2] 等代碼設置方式。
克服這個問題的一種方法是將代碼的保存演示區域移動到初始 For() 循環內。
解決此問題的另一種方法是在初始 For() 循環中,在創建後將“gb”的值保存到列表中。然後,在第二個 For() 循環中指向列表中的元素,而不是 gb[i] 等。
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" );回复:如何為圖形生成器編寫移動的 Y 變量腳本?謝謝吉姆。
但是我不知道為什麼這個錯誤在調試過程中一直提示我。

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();
回复:如何為圖形生成器編寫移動的 Y 變量腳本?假設“NamesList”包含您要用作 Y 列的 Y 列,然後替換
:名字(“Y”)
和:
作為列(名稱列表[i])