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

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

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

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

-デイブ