部分データセットを使用してフルマップを強制するこんにちは、
私は誰かがここでいくつかの手引きで手伝うことができると思います。 大規模なレポート生成の一部として、次のスクリプトを使用してウェーハヒートマップを生成しています。
Graph1 = dt << Graph Builder(
サイズ(300、300)、
コントロールパネルを表示(0)
フッターを表示(0)
Yグループエッジ( "左")
変数(
グループX(:Col、タイトルを表示(0))、
グループX(:ChipCol、タイトルの表示(0))、
グループY(:行、タイトルを表示(0))、
グループY(:ChipRow、タイトルを表示(0))、
色(:test_value)
)
ここで、((:ReportLevel == Report_Level&:lot == this_lot&:wafer == this_wafer))、、
(:VarDescription)によると、
要素(ヒートマップ(凡例(13)))、
SendToReport(
Dispatch({}、"グラフのタイトル"、TextEditBox、{Set Text( "")})、
ディスパッチ({}、"Xタイトル"、TextEditBox、{Set Wrap(2)})、
ディスパッチ({}、"Y title"、TextEditBox、{Set Wrap(2)})
)
)
VarDescriptionには最大150の可能な値があり、これをループで実行して個々のマップを作成し、ジャーナルを追加し、マップを閉じるのは非常に不格好です。 By(:VarDescription)ステートメントを使用してグラフビルダーがすべてのマップを一度に作成できるようにすると、はるかに流動的になり、ジャーナルを作成するには、グラフオブジェクトの配列位置から個々のマップを取得できます。 完全な地図を取得するには、すべてのサイトに値を設定する必要があります。それ以外の場合は、部分的で統合された地図が表示されます。 いくつかのサイトをテストしただけでも、空間全体を考慮して地図全体を表示したいと思います。 私のデータテーブルには、最初の列と最初の行のすべての場所の空白値を表す少数の参照(ダミー)行が含まれています。 "ダミー"行が含まれている場合、これは事実上グラフビルダーでフルマップの表示を強制します。 グラフビルダーでBy(:VarDescription)ステートメントを使用するのに対して、filter(Where)ステートメントを使用するのであれば、これらの参照行を各マップに含める方法がわかりません。 マップを最初に作成したときにそれを行う方法はないと思います。 事実の後にグラフオブジェクトにデータを追加する方法はありますか?または生成されたフィルタリングを変更しますか?私は、ジャーナル内の個々のマップが変更されたフィルターで終わることに気付きました。By()ステートメントによって生成されたと思います。 これを回避する代替策として、すべての人に「ダミー」の行を作成することを検討しました。VarDescriptionの可能性がありますが、データテーブルが非常に大きくなり散らかってしまいます。 私はそれを避けようとしています。
ありがとうございます。
部分的なデータセットでフルマップを強制するジム - ありがとう!これは優れたアプローチです。 私はその場でJMPを学んできましたが、各プロットに対するループアプローチを早い時期に不器用にした理由の1つは、グラフや表を操作のために目に見えないように生成して裏に隠すことができなかったことです。 私はこの方法でテンプレートを作成し、それが存在するところはどこでも単にデータを記入するという考えが好きです。 私がやっている処理はたくさんあるので、私はおそらく私のスクリプトのかなりの部分を見直す必要があるでしょう、しかしそれは長期的にはより良いもののためになるでしょう。 再度、感謝します!
コーリー
部分的なデータセットでフルマップを強制するこれは私があなたが望むものをあなたに与えると信じているスクリプトです。 ジャーナルウィンドウにすべてのウェーハマップが生成されます。 使用可能な値がないため、Graph BuilderスクリプトからWhere()句を省略しましたが、実際に問題なく行を追加できるはずです。
Names Default To Here( 1 );
dt = Current Data Table();
// Create the empty wafer map data set
dtWaferMap = dt << Summary(
private,
Group( :Col, :ChipCol, :Row, :ChipRow ),
Freq( "None" ),
Weight( "None" )
);
dtWaferMap << delete columns( "N Rows" );
// Get a list of all of the VarDescriptions
Current Data Table( dt );
Summarize( dt, byVarDes = by( :VarDescription ) );
// Create the output journal
NW = New Window( "Heat Maps", <<JOURNAL></JOURNAL>

部分的なデータセットでフルマップを強制する私は実際にPage()から戻ってきましたが、問題は、共通の凡例/スケールがあるため、すべてのマップが同じパラメータのサブセットを記述している場合にのみ機能することです。 私は本当に各マップが異なるパラメータである必要があります、そしてBy()は実際に離散プロットを作成します。
部分的なデータセットでフルマップを強制する私はあなたのデータ構造を使っていくつかのサンプルデータを作り、あなたのヒートマップのレプリカを作りました。次に、セルのサブセットのみを使用して、2番目のVarDescription値セットを追加しました。 それから、「BY」を使用するのではなく、VarDescriptionをページ領域にドロップして、次のようにしました。

ページの問題は、100ページの値しか許可されていないことです。 ただし、これはデータを100ページのサンプルにサブセット化することで簡単に解決できます。
これはGraph Builderによって生成されたコードです。
Graph Builder(
Size( 418, 646 ),
Show Control Panel( 0 ),
Show Footer( 0 ),
Y Group Edge( "Left" ),
Variables(
Page( :VarDescription ),
Group X( :Col, Show Title( 0 ) ),
Group X( :ChipCol, Show Title( 0 ) ),
Group Y( :Row, Show Title( 0 ) ),
Group Y( :ChipRow, Show Title( 0 ) ),
Color( :test_value )
),
Elements( Heatmap( Legend( 33 ) ) ),
SendToReport( Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ) )
);
部分的なデータセットでフルマップを強制するフォローアップとして、私はもう少しシェイプマップを調べました。 それはいくらかうまくいくように見えるかもしれませんが、私たちのアプリケーションにとって重要である私のプロットのrow / col、subrow / subcolフォーマットを簡単に採用する方法を見ません。 私はそれをブルートフォースすることができると思います。 私が生成したマップは、x / y座標上の最終的な積の空間表現として単純には使われていません。 それらは、部品に対処し、他の人々と素早くコミュニケーションをとるために使用されます。 x / yを扱うことは私たちの目的のために少し不格好な翻訳のもう一つの層を追加するだけです。
部分的なデータセットでフルマップを強制する
RowとColは基本的にマップグリッドを定義します。 ChipRowとChipColは、基本的にサブ行とサブ列です。
これは、一意のVarDescriptionごとに生成される出力例です。 これは、すべてのサイトのデータがある場合の表示方法です。

私がやろうとしているのは、部分的なデータがあってもそれを完全に見えるようにすることです。 ダミー行はこれを達成し、私はこれを得ます。

ダミー行の利点がなければ、これはそれがどのように見えるかです...

シェイプマップはまだ調べていませんが、少し前倒しで作業することをお勧めします。 もう少し詳しく調べることができます。
部分的なデータセットでフルマップを強制するあなたの問題を再現しようとしています。
いくつか質問があります。
結果のスクリーンショットを挿入してもらえますか。
RowとChipRow、ColとChipColの定義は何ですか?
シェイプマップを使って調べましたか?