<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
私は多くの異常値を持つデータを扱うことがよくありますが、それらすべてをフィルタリングすることは現在実用的ではありません。 グラフビルダーを使用して、列スイッチャーで色を切り替え、選択した列に基づいて色のスケールを更新して情報を表示したいです。
これは単一の列からのデータに最適です。 ただし、Column Switcherを使用すると、Graph Builderオブジェクト(gbObj)が削除されます(log = 削除されたオブジェクト参照[] ) gbObjがないと、プロットを拡大縮小できず、JMPはエラーをスローします。送信は、「送信」のアクセスまたは評価にスクリプト可能オブジェクトを必要とします。 。
以下のコードはこの問題を示しています。
ウィンドウへの参照 cusRpt はまだ有効であり、私はへの参照を得ることができますアウトラインボックスグラフビルダー 残念ながら、私は何を知りません DisplayBox 色をスケーリングするときに参照する。 誰もがこの問題を解決する方法を知っていますか?
ありがとうございました、
ブライアン
/ *開始スクリプト* /
dtData = Open( "$ SAMPLE_DATA / Semiconductor Capability.jmp");
//////////////////////////////////////////////////// ///////////////////////////////////////
/ *
setContoursGB(toWindow、LV、HV、numContours)
Graph Builderオブジェクトに輪郭を設定するための関数= toWindow。
等高線は、numVontoursの等高線で、LVとHVの間に等間隔に配置されます。
* /
//////////////////////////////////////////////////// ///////////////////////////////////////
setContoursGB = Function({toWindow、LV、HV、numContours}、
{toWindow、locContours、LV、HV、numContours、i}、
locContours = 1 :: numContours;
(i = 1、i <= numContours、i ++、
locContours = LV +(i − 1)*(HV − LV)/(numContours − 1))。
toWindow << SendToReport(
ディスパッチ(
{}、
"400"、
ScaleBox、
{凡例モデル(
1、
プロパティ(
0、
{勾配(
{カラーテーマ( "クールに暖かい")、
ラベルレベル(
locContours
)、幅(12)}
)}
、
プロパティ(1、{マーカー( "パイプ")、塗りつぶしの色(0)})
)}
))
;
//////////////////////////////////////////////////// ///////////////////////////////////////
/* ウィンドウを開く */
custRpt =新しいウィンドウ( "分析"、
AnaNotesBox =アウトラインボックス( "分析ノート"、
テキストボックス( "情報...")、
)
;
/ *グラフビルダーオブジェクト(GB)を追加する* /
custRpt << append(
gbObj =グラフビルダー(
サイズ(570、374)、
コントロールパネルを表示(0)
変数(X(:ロットID内のウェーハID)、Y(:SITE)、色(:NPN1))、
要素(点(X、Y、凡例(1)、ジッタ(1)))、
SendToReport(
ディスパッチ(
{}、
"400"、
ScaleBox、
{凡例モデル(
1、
プロパティ(
0、
{グラデーション({色のテーマ( "冷たい色")、幅(12)})}
、
プロパティ(1、{マーカー( "パイプ")、塗りつぶしの色(0)})
)}
、
ディスパッチ({}、"グラフビルダー"、FrameBox、{マーカーサイズ(5)})
)
;);
/ *列スイッチャーを開く* /
csObj = gbObj << Column Switcher(
NPN1、
{NPN1、PNP1、PNP2、NPN2、PNP3、IVP1、PNP4、NPN3、IVP2、NPN4、SIT1、INM1、
INM2、VPM1、VPM2、VPM3、PMS1、SNM1}
;
/ * GBスケーリング演習を実行します。* /
popup =新しいウィンドウ( "メッセージ"、
<<モーダル、テキストボックス( "次に、より高いコントラストのカラーリングを適用します。")、
SpacerBox(サイズ(0、20))、
HCenterBox(ボタンボックス( "OK"))
;
setContoursGB(gbObj、110,120,11);
custRpt <<ウィンドウを前面に表示
popup =新しいウィンドウ( "メッセージ"、
<<モーダル、テキストボックス( "今、スケールで遊ぶ。")、
SpacerBox(サイズ(0、20))、
HCenterBox(ボタンボックス( "OK"))
;
setContoursGB(gbObj、105,115,11);
待ちます(1);
setContoursGB(gbObj、115,125,11);
待ちます(1);
setContoursGB(gbObj、113,117,11);
待ちます(1);
setContoursGB(gbObj、110,120,11);
/ * Column Switcherを使用してください。私たちはここまでOKです。* /
popup =新しいウィンドウ( "メッセージ"、
<<モーダル、テキストボックス( "列スイッチャーをPNP1に設定します。")、
SpacerBox(サイズ(0、20))、
HCenterBox(ボタンボックス( "OK"))
;
csObj <<次へ;
/ * GBを再スケーリングしようとすると、物事は壊れます。* /
popup =新しいウィンドウ( "メッセージ"、
<< Modal、Text Box( "Graph Builderを再スケールしてみてください。"、
SpacerBox(サイズ(0、20))、
HCenterBox(ボタンボックス( "OK"))
;
setContoursGB(gbObj、200,400,11);
/ *スクリプトの終了* /
なぜ送信するのかわかりません <<次へ列スイッチャーへのメッセージはプラットフォームオブジェクト参照を壊します。この問題を回避するには、列を切り替えた後に復元します。これを試して:
csObj << 次 ;
gbObj = custRpt [ アウトラインボックス ( 「グラフビルダー」 )] << スクリプト可能オブジェクトを取得する ;