ユーザーがパラメーターを選択するたびに、グラフビルダーに一意のSPEC制限を追加しますやあ
2つのパラメーター(MODULE_MONITORとCHART_TYPE)をユーザーが選択して、グラフビルダーでインタラクティブなグラフを表示するスクリプトを作成しました。
各パラメーターには2つの選択オプションがあります。
それぞれの四チャート表示のオプションには、(列内の)SPEC制限の一意のセットがあります:CENTERLINE、UCL、LCL。
各グラフが関連するSPEC制限をプロットすることを望みます。
ありがとう!
JSLスクリプト:
Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :PROCESS_DATE ), Y( :VALUE ), Overlay( :group ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Add Filter(
columns( :MODULE_MONITOR, :CHART_TYPE ),
Where( :MODULE_MONITOR == "PLPN" ),
Where( :CHART_TYPE == "SIGMA" )
)
),
SendToReport(
Dispatch(
{},
"VALUE",
ScaleBox,
{Add Ref Line( :UCL, "Solid", "Red", "UCL", 1 ),
Add Ref Line( :LCL, "Solid", "Red", "LCL", 1 ),
Add Ref Line( :CENTERLINE, "Solid", "Black", "CENTERLINE", 1 )
}
)
)
)
分析データ表スクリプティング再:パラメータのユーザー選択ごとにグラフビルダーに一意のSPEC制限を追加しますこれがあなたの問題を処理する1つの方法の例です
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb = dt << Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) )
);
ldf = gb << Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "F" ) ) );
Report( gb )[FrameBox( 1 )] << add graphics script(
wc = ldf << get where clause;
Eval( Parse( "dt << " || wc ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( UC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( LC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( cLINE, "Solid", "Blue", "", 0 ) );
cline = Try( dt:centerline[(dt << get selected rows)[1]], . );
uc = Try( dt:ucl[(dt << get selected rows)[1]], . );
lc = Try( dt:lcl[(dt << get selected rows)[1]], . );
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( LC, "Solid", "Red", "LCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( cLINE, "Solid", "Black", "CENTERLINE", 1 );
);
添付のデータテーブルには、あなたのテーブルと似ていると思うサンプルデータテーブルが含まれています
再:パラメータのユーザー選択ごとにグラフビルダーに一意のSPEC制限を追加しますやあ
返信ありがとうございます
スクリプトをあなたの助けに合わせようとしましたが、機能しません。
ここに添付されているスクリプトと表
あなたが助けることができることを願っています
トーマー
Names default to here (1);
dt = Current Data Table(); // Assuming the data table is open
gb = Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :PROCESS_DATE ), Y( :VALUE ), Overlay( :group ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Add Filter(
columns( :MODULE_MONITOR, :CHART_TYPE ),
Where( :MODULE_MONITOR == "PLPN" ),
Where( :CHART_TYPE == "SIGMA" )
)
),
);
ldf = gb << Local Data Filter( Add Filter( columns( :MODULE_MONITOR, :CHART_TYPE ), Where( :MODULE_MONITOR == "PLPN" ),Where( :CHART_TYPE == "SIGMA" ) ) );
Report( gb )[FrameBox( 1 )] << add graphics script(
wc = ldf << get where clause;
Eval( Parse( "dt << " || wc ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( UCl, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( LCl, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( CENTERLINE, "Solid", "Blue", "", 0 ) );
cline = Try( dt:CENTERLINE[(dt << get selected rows)[1]], . );
uc = Try( dt:UCL[(dt << get selected rows)[1]], . );
lc = Try( dt:LCL[(dt << get selected rows)[1]], . );
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( LC, "Solid", "Red", "LCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( cLINE, "Solid", "Black", "CENTERLINE", 1 );
);
再:パラメータのユーザー選択ごとにグラフビルダーに一意のSPEC制限を追加しますコードにはいくつかの問題がありました。
- グラフビルダーの本体にローカルデータフィルターコードを残しました。私が送信した変更により、そのコードが削除され、
ldf = gb << Local Data Filter(..........
両方のフィルター参照を含めると、2番目の参照が正しく機能しなくなりました。
- 私は2つの間違った参照を残しました
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( LC, "Solid", "Blue", "", 0 ) );
Remove RefLineにバグがあります。したがって、線を削除するのではなく、線を線幅0に設定する必要があるため、線は次のようになります。
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( LC, "Solid", "Blue", "", 0 ) );
これらの変更後、スクリプトはあなたのデータでうまく機能しました。
Names default to here (1);
dt = Current Data Table(); // Assuming the data table is open
gb = Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :PROCESS_DATE ), Y( :VALUE ), Overlay( :group ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) )/*,
Local Data Filter(
Add Filter(
columns( :MODULE_MONITOR, :CHART_TYPE ),
Where( :MODULE_MONITOR == "PLPN" ),
Where( :CHART_TYPE == "SIGMA" )
)
),*/
);
ldf = gb << Local Data Filter( Add Filter( columns( :MODULE_MONITOR, :CHART_TYPE ), Where( :MODULE_MONITOR == "PLPN" ),Where( :CHART_TYPE == "SIGMA" ) ) );
Report( gb )[FrameBox( 1 )] << add graphics script(
wc = ldf << get where clause;
Eval( Parse( "dt << " || wc ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( UC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( LC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( cLine, "Solid", "Blue", "", 0 ) );
cline = Try( dt:CENTERLINE[(dt << get selected rows)[1]], . );
uc = Try( dt:UCL[(dt << get selected rows)[1]], . );
lc = Try( dt:LCL[(dt << get selected rows)[1]], . );
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( LC, "Solid", "Red", "LCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( cLINE, "Solid", "Black", "CENTERLINE", 1 );
);
再:パラメータのユーザー選択ごとにグラフビルダーに一意のSPEC制限を追加しますありがとう。働く!
使用する理由を教えてください
Try( Report( gb )[AxisBox( 2 )] << add Ref Line
その後
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
UCL、CLINE、LCLの場合?
トーマー