コントロール チャートの表示から「どこで」条件を削除する方法。<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
1 つのウィンドウに 3 つの異なるチャート (IR、EWMA、CUSUM) をプロットしていますが、私が直面している問題は、表示ウィンドウ上のチャート内で使用される where 条件も表示されていることです。
表示ウィンドウ:

コード:
オブジェクト=新しい窓( 『トレンド分析レポート』 ||ロングデート(今日()) 、
vlb = Vリストボックス()
) ;
画面=関数({プロセス、ラベル、による、ソースタイプ、 lmt1 、 lmt2 、 lmt3 } 、
r1 =新しい窓( 「」 、
PLB =パネルボックス( 「 の管理図」 ||プロセス|| 「&」 || 「ソースタイプ=」 ||ソースタイプ、現在のデータテーブル( dt ) ;
H リストボックス(
管理図(
サンプルラベル(カラム( dt 、ラベル)) 、
グループの規模( 1 ) 、 KSigma ( 3 ) 、
列として( dt 、プロセス) 、個別測定( LCL ( lmt1 [ 6 ]) 、平均( lmt1 [ 5 ]) 、 UCL ( lmt1 [ 7 ]))) 、
どこ(列として( dt 、による) ==ソースタイプ) ;
) ;
サンプルラベル(カラム( dt 、ラベル)) 、
サンプルサイズ( 1 ) 、
アルファ( 0.00269979606326021 ) 、
限界凡例を表示( 0 ) 、
列として( dt 、プロセス) 、カスタム(両面( 1 ) 、平均( lmt2 [ 5 ]))) 、
どこ(列として( dt 、による) ==ソースタイプ) ;
) ;
サンプルラベル(カラム( dt 、ラベル)) 、
サンプルサイズ( 1 ) 、
KSigma ( 3 ) 、重さ( 0.2 ) 、
列として( dt 、プロセス) 、 EWMA (平均( lmt3 [ 5 ]))) 、
どこ(列として( dt 、による) ==ソースタイプ) ;
) ;
) ;
) ;
) ; vlb <<追加( r1 ) ; r1 <<ウィンドウを閉じる;
) ;
プロット=関数({ LMTS 、 pmt_path } 、
param_dt =開ける( pmt_path 、 "見えない" ) ;
param_summ = param_dt <<まとめ(見えない、
グループ( :グループ化、:プロセス、:サンプルラベル、:による)) <<ショーウィンドウ( 0 ) ;
のために( q = 12 、 q <= Nロウ( param_summ ) 、 q ++、現在のデータテーブル( param_summ ) ;
列2 =:プロセス[ q 】 ;列3 =:サンプルラベル[ q 】 ;列4 =:による[ q 】 ;
現在のデータテーブル( LMTS ) ;
CLMS = LMTS <<列名の取得(弦) ;
から削除( CLMS 、 1 、 3 ) ;
のために( t = 1 、 t <= N 個のアイテム( CLMS ) 、 t ++、現在のデータテーブル( LMTS ) ;
indv_lmts =列として( CLMS [ t ])[ LMTS <<どこで行を取得するか( :パラメータ==列2 & :グラフの種類== "個人" )] ;
cusum_lmts =列として( CLMS [ t ])[ LMTS <<どこで行を取得するか( :パラメータ==列2 & :グラフの種類== 「カスタム」 )] ;
ewma_lmts =列として( CLMS [ t ])[ LMTS <<どこで行を取得するか( :パラメータ==列2 & :グラフの種類== 「EWMA」 )] ;
画面(列2 、列3 、列4 、 CLMS [ t 】 、 indv_lmts 、 cusum_lmts 、 ewma_lmts ) ;
) ;
) ;
) ;
なぜそれが起こっているのか理解できません。 助けていただければ幸いです。 ありがとう!!
Re: コントロール チャートの表示から「どこ」条件を削除する方法。ありがとうmpb 。 それが私が正確な解決策を探していたものです。
Re: コントロール チャートの表示から「どこ」条件を削除する方法。デビッドさん、ご意見ありがとうございます。 それは良いアプローチだと思われるので、ぜひ試してみたいと思います。
その間、迅速な解決策を探していましたが、 mpbの解決策はうまくいきました。
しかし、あなたのアプローチは、エンドユーザーにとってチャートを適切に解釈するのに非常に自明です。
Re: コントロール チャートの表示から「どこ」条件を削除する方法。この例が役立つかどうかを確認してください。 Murphrey と Lucas による優れた JSL イントロ「Jump into JMP Scripting」の例を変更しました。
dt = Open( "$SAMPLE_DATA/品質管理/直径.jmp" );
cc = 管理図(
グループサイズ( 1 )、
KSigma( 3 )、
チャートの列( :DIAMETER、個別の測定値 )、
Where( :MACHINE == "A386" )
);
待機( 2 );
(レポート( cc ) << 親)[テキスト ボックス( 1 )] << 削除;
待機( 2 );
Re: コントロール チャートの表示から「どこ」条件を削除する方法。where 句のテキストは JMP からの標準出力であり、コードに固有のものではありません。たとえば、このスクリプトの場合:
管理図(
グループの規模( 1 ) 、
KSigma ( 3 ) 、
チャート列( :直径、個別測定) 、
どこ( :機械== 「A386」 )
) ;
出力は次のようになります。

残念ながら、このテキストは表示ツリーには表示されないようなので、簡単に削除できません。私が採用するアプローチは、各チャートのデータのサブセットを作成して、where 句が不要になるようにすることです。複数のチャートを含むウィンドウを作成している場合、「コントロール チャート」というタイトルを付けても有用な情報は追加されないため、このテキストをデータのサブセットに使用する選択句に置き換えます。

完全なスクリプトは次のとおりです。
dt =開ける( "$SAMPLE_DATA/品質管理/直径.jmp" ) ;
// 'where' 句に使用される列名
グループ名= "機械" ;
// ウィンドウを閉じるイベントの後にハウスキーピングを行うためにこれが必要です
ns =新しい名前空間( 「削除する一時テーブル」 ) ;
// マシンの一意の値を取得します
要約する(レベル=による(列として(グループ名) ) ) ;
新しい=新しい窓( 「私のチャート」 、
HLB = H リストボックス()
) ;
// 各値を反復処理します
ns : lstTables = {} ;
のために(私= 1 、私<= Nアイテム(レベル) 、私++、
// データのサブセットを作成します
一致する行= dt <<どこで行を取得するか(列として(グループ名) ==レベル[私] ) ;
dtName = 「のサブセット」 ||グループ名|| 「=」 ||レベル[私】 ;
dtサブセット= dt <<サブセット(行(一致する行) 、出力テーブル( dtName ) 、見えない) ;
// 閉じるイベントによる参照のために名前空間に追加します
挿入する( ns : lstTables 、 dtサブセット) ;
// コンテナを使用して、ウィンドウに追加されるまでチャートがレンダリングされないようにします
容器= V リストボックス(
cc = dtサブセット<<管理図(
グループの規模( 1 ) 、
KSigma ( 3 ) 、
チャート列( :直径、個別測定) 、
)
) ;
// タイトルを修正します
担当者= cc <<報告;
オブ=担当者[アウトラインボックス( 1 )] ;
オブ<<タイトルの設定(グループ名|| 「=」 ||レベル[私]) ;
// レポートウィンドウに追加します
HLB <<追加(容器)
) ;
// ハウスキーピング - サブセット テーブルを削除します
新しい<<閉じる時(
ns =名前空間( 「削除する一時テーブル」 ) ;
のために(私= 1 、私<= Nアイテム( ns : lstTables ) 、私++、
試す(近い( ns : lstTables [私】 、保存しない) )
)
) ;
関連する出力:

-デイブ