jmp の等高線プロットからライン スキャン データを取得するこんにちは、
等高線図があり、等高線図の線に沿ってデータがどのように変化するかを確認したいと考えています。
例えば、等高線図は膜厚等高線図である。 そして、等高線図上の任意の場所に描いた線に沿って太さがどのように変化するかを見てみたいと思います。
これは可能でしょうか?
ヨガ
Re: jmp の等高線プロットからラインスキャンデータを取得するヨガ、
データテーブルにスクリプトを追加するには、複数の方法があります。JMP ならもっと簡単にできると思います。 参考までに、このスクリプトではスクリプトを追加する方法を 3 つだけ示します。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myScript = Expr(Distribution( Column( :Height, :Weight ), By( :sex )) );
//---hard coded method below
//dt << New Script("New Script",Distribution( Column( :Height, :Weight ), By( :sex )) );
//--or use the syntax below that uses expression substitution then Eval() to run it
//Eval( Substitute(Expr( dt << New Script( "New Script", _xx ) ), Expr(_xx), NameExpr(myScript) ) );
//---or use Eval Expr() that does the substitution and Eval() that runs it
Eval( Eval Expr(dt << New Script("New Script", Expr(NameExpr( myScript) ) ) ) );
Re: jmp の等高線プロットからラインスキャンデータを取得するこんにちは、モーガンさん
私の例として送信していただいたサンプル コードには、いくつかの (軽微な) 構文エラーがありました。 これを修正するのに少し時間がかかりました (jmp スクリプトの初心者です) が、最終的には希望どおりに動作するようになりました。 ご助力に改めて感謝いたします。 他の人のために、変更したスクリプトを以下に添付します。
また、スクリプトがデータ テーブルに保存されている場合は、(長い) 場所のパスを指定する必要がないことにも気付きました。 奇妙なことに、新しいスクリプト ファイルをデータ テーブルに保存できません。 別の jsl ファイルとして保存する必要があります。 回避策として、データ テーブル内の既存のスクリプトを開き、新しいスクリプトを入力するように変更します。
Re: jmp の等高線プロットからラインスキャンデータを取得するこんにちは、モーガンさん
再度、感謝します。 大変感謝しております。 それに応じてスクリプトを変更します。
ヨガ
Re: jmp の等高線プロットからラインスキャンデータを取得する私は半導体データの経験があるので、ウェハごと、あるいは構造ごとに解析したい気持ちはわかります。あなたの発言からすると「 1 つのオブジェクトに対して機能します。 複数のオブジェクトがある場合、グループ化する方法がわかりません。" ファイルにウェーハおよび/または構造という列があると仮定します。
まず、データ テーブルに dt という名前を付ける必要はありません。 私は変数参照を再利用していますが、これらすべてのテーブルを dt と呼ぶと、より大規模なスクリプトで混乱が生じる可能性があります。スクリプトが機能しない原因として最も多いのは、構文やタイプミスによる名前の衝突です。
スクリプトに関して、ジャーナルに順番に配置されるすべてのグラフに問題がない場合は、「グループごと」を処理するためにスクリプトに提案する変更をここに示します。 このスクリプトの下にはさらに続きがあります。
subp = dt << Bivariate ( Y(:Name( "Rdson" )), X(:X), By(:Wafer) );
xx = subp << Find (Outline Box ("Bivariate ?") );
//this returns all outline boxes with Bivariate in the title, should be one for each wafer
//This adds the title but maintains the By Wafer = xxxxxxx
For(i=1, i <=nitems(xx), i++,
ttl = xx[i] << get title;
p = Contains( ttl, "By"); //find the position of the word By
xx[i] << Set Title(" Rdson Contour at Y==0 " || substr(ttl, p, 100) ); //something large
);ただし、各スキャンで各ウェーハを並べて表示できるようにレポートをレイアウトできる他の方法もあります。以下は Big Class を使用した例です。 スクリプトを添付しました(ファイルを参照)。 テストテーブルがないので、それが機能するかどうかは保証できませんが、試してみるとよいでしょう。
Names default to here(1);
open("$sample_data/Big Class.jmp");
nw = new window("example", lineupbox(ncol(2), Distribution(
Continuous Distribution( Column( :weight, Horizontal Layout(1) ) ),
Histograms Only,
By( :age, :sex )
)));
nw << journal window();
Re: jmp の等高線プロットからラインスキャンデータを取得するこんにちは、モーガン(そして皆さん)、
データテーブルでなんとか動作させることができました。 また、常に等高線図を使用する必要はないことにも気づきました。 すべて X==0 のサブテーブルを作成し、Y に沿ってデータを取得したり、その逆も可能です。また、その他の好きな座標も可能です。 あなたが提供したスクリプトはかなり役に立ちました。
現在、複数のオブジェクトにわたってそれを行う方法を見つけようとしています。 私のサンプルスクリプトは以下です。 1 つのオブジェクトに対して機能します。 複数のオブジェクトがある場合、グループ化する方法がわかりません。 これについて何か意見はありますか? 大変感謝しております。
私のスクリプトでは、現在、1 つのオブジェクトのすべてのデータを取得しています。 ただし、別のオブジェクトでも同じことを繰り返す必要があります。 すべてのオブジェクトは、「ウエハー」または「構造」などの 1 つのカテゴリに分類されます。
名前のデフォルトは Here(1) です。
dt = open("C:/Users/yoga_***/***.jmp");
dt << 場所を選択 (:Y == 0);
dt << サブセット(出力テーブル("サブセット"),選択された行(1), 選択された列(0));
dt = データテーブル(「サブセット」);
subp = dt << 二変量 ( Y(:Name( "Rdson" )), X(:X) );
report(subp)[OutlineBox(1)] << Set Title( "Rdson Contour at Y==0" );
subp << ジャーナルウィンドウ();
subp << ウィンドウを閉じる();
dt = open("C:/Users/yoga_***/***.jmp");
dt << 場所を選択 (:X == 0);
dt << サブセット(出力テーブル("サブセット2"),選択された行(1), 選択された列(0));
dt = データテーブル("サブセット2");
subp = dt << 二変量 ( Y(:Name( "Rdson" )), X(:Y) );
report(subp)[OutlineBox(1)] << Set Title( "Rdson Contour at X==0" );
subp << ジャーナルウィンドウ();
subp << ウィンドウを閉じる();
dt = open("C:/Users/yoga_***/***.jmp");
dt << 場所を選択 (0.95 < :X/:Y < 1.05);
dt << Subset(出力テーブル("Subset3"),選択された行(1), 選択された列(0));
dt = データテーブル("サブセット3");
subp = dt << 二変量 ( Y(:Name( "Rdson" )), X(:X) );
report(subp)[OutlineBox(1)] << Set Title( "Rdson Contour at X==Y" );
subp << ジャーナルウィンドウ();
subp << ウィンドウを閉じる();
close(データテーブル("サブセット"), NoSave);
close(データテーブル("サブセット2"), NoSave);
close(データテーブル("サブセット3"), NoSave);
Re: jmp の等高線プロットからラインスキャンデータを取得するこんにちは、モーガンさん
まさにこれが私が望んでいることです。 私は通常、このサブルーチンをスクリプトなしで実行します。 このスクリプトが役に立ちます。
現在、このスクリプトを現在の要件に統合する方法を見つけようとしています。
引き続きお知らせします。
Re: jmp の等高線プロットからラインスキャンデータを取得するこんにちは、モーガンさん
詳細な返信ありがとうございます。 (すべて) お知らせしていきたいと思います。
Re: jmp の等高線プロットからラインスキャンデータを取得する輪郭の断面図を取得するには複数の方法があります。ただし、これは、他のプログラムで使用できる組み込みステートメントまたは単一ステートメントではない可能性があります。
というスクリプトを添付しましたContourCrossSection.jsl 。 JMP サンプル データ Little Pond.jmp を使用します。このデータは池の深さを表します。 等高線、単一の断面ビュー (Fit Y by X、Bivariate を使用)、および 3 つの断面の比較ビュー (グラフ ビルダーを使用) を作成します。
JSL に詳しくない場合は、プログラムを実行してください。 JMP12、13、14でテストしました。 重要なのは、等高線プロット オプションから取得できるオプションです。JMP 等高線プロットで、赤い三角形のメニューを選択し、保存を選択し、グリッドの生成。X スライスと Y スライスの数を指定すると、xygrid が生成されます。
他にもいくつかのアイデアを紹介します。
- サンプル ポイントの数が密でない場合は、ニューラル ネットまたはその他のプラットフォームを使用して、より滑らかな曲線を作成することを検討してください。 三角測量がオフになる場合があります。 関数を使用して断面を取得する方法は複数あります。
- メッシュで Contour Profiler を使用する方法を学びます。 次に、メニューからローカル データ フィルターを追加し、Y または X の範囲を 50 <=Y <= 50.1 などに設定します。これはすべて対話型です。 プロファイラーには他のオプションもあります。
- アクセス権のある別のプログラムからこれを簡単に取得できる場合は、R、MatLab、SAS、および JMP14 では、JSL を使用して Python にアクセスし、プログラムを実行できます。
お役に立てれば。
Re: jmp の等高線プロットからラインスキャンデータを取得するこんにちは、キャメロン
いいえ、平滑化スプラインではありません。 現在、データのサブセットを取得する曲がりくねった方法に従わない限り、それを取得する方法はないようです。
ただし、その機能を jmp に追加するのはそれほど難しいことではありません。 これは通常、XY でパラメータをマッピングして等高線プロットを作成する多くのソフトウェアに存在します。 そして、輪郭を通る線に沿ってそれがどのように変化するかを確認することができます。
Re: jmp の等高線プロットからラインスキャンデータを取得するダウンウェブ方向に沿った特定のスライスにおけるクロスウェブプロファイルのようなフィルムの断面を記述しているのでしょうか? もしそうなら、輪郭プロファイラーからそれを取得する方法はないと思います。
スムージング スプラインのように、その断面内のデータ ポイント間を補間する線を描く必要がありますか?
Re: jmp の等高線プロットからラインスキャンデータを取得するこんにちは、キャメロン
ではない正確に。 等高線プロットの一方の端からもう一方の端まで線を引くときのパラメータの変化を探しています。 ここでは可能な限り最良の方法で説明してみます。
基板上で変化する膜厚の等高線プロットがあります。 次に、任意の X (または Y) を選択して、一方の端からもう一方の端まで線を引くことができます。 すべての点が Y=0 で、X が -50 から +50 まで変化する必要があるとします。 -50から+50までの水平線を描きます。 次に、その線の太さがどのように変化し、横にプロットが表示されるかを確認したいと思います。
曲がりくねった方法でこれを行うことができました。 データセットを取得します。 次に、Y=0 のすべてのデータ ポイントの別のサブセットを取得します。 次に、厚さと X をプロットします (すべて Y=0)。
どこにでも線を描くときに、これを背景で実行できるようにしたいと思います。
Re: jmp の等高線図からラインスキャンデータを取得するこんにちは@ヨガ、
等高線図の上にデータ点をプロットしたいということですか?その場合は、このスレッドを参照してください。 https://community.jmp.com/t5/Discussions/Adding- specific-data-points-with-labels-to-a-contour-plot/mp/52455