チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するためのスクリプトを作成するにはどうすればよいですか?やあ、
JMP で製品テスト データを分析するために使用するスクリプトが多数あります。
スクリプトは通常、テスト データ ファイル内の複数の列を呼び出します。
各テスト実行には ID がタグ付けされており、新しいテスト実行データを JMP に取り込む際に変更されるのはこの ID だけです。データ分析に使用されるスクリプトは同じままです。
私の分析を共有するために、私は(現在)グラフと分析データ(中央値や標準偏差など)を含む PPT スライド パックを手動で作成しています。
JMPジャーナルに移りたいと思います。
(他の分析スクリプトを自動的に実行するか実行せずに) チャートと分析データを JMP ジャーナルに送信するスクリプトを作成することは可能でしょうか? 可能であれば、このようなジャーナルをまとめるスクリプトの例を教えていただけないでしょうか。
ありがとう。
自動化とスクリプト作成ウィンドウズRe: チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するスクリプトを作成するにはどうすればよいですか?@ian_jmp - 提案されたコードを分解して、何が機能していないのかを追跡しました。 問題は for ループ内の行にあるようです
thisWindow = postWindowList[w];
私の場合、これはログに記録されます(グラフをプロットするために単純なスクリプトが実行されたとき)
"part012 - Graph Builder"
存在しない最初のグラフ項目について
preWindowList
あとはただ走るだけ
Window(thisWindow) << Journal
というウィンドウを配置しません
"part012 - Graph Builder"
ジャーナルファイルに。 名前に問題があるのでしょうか「part012 - Graph Builder」自体がこのグラフをジャーナルに送信できない原因ですか?
Re: チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するスクリプトを作成するにはどうすればよいですか?@ian_jmp , 次の方法を試してみると、for ループ(最後)をコメントしない限り、開いているチャートウィンドウのリスト(ログ)が取得されません。
また、ジャーナル ファイルは生成されません。 どこで間違いを犯しているのでしょうか?
関数 (getOpenWindowNames.jsl という名前) を定義して実行します。
Names Default To Here(1);
// Returns a list containing the names of all the currently open windows in a session
namesOfOpenWindows =
Function({}, {DefaultLocal},
openWindows = Window();
openWindowNames = {};
For(w=1, w<=NItems(openWindows), w++, InsertInto(OpenWindowNames, OpenWindows[w] << GetWindowTitle));
openWindowNames;
);次に、別のスクリプトで上記の関数を次のように呼び出します。
Names Default To Here(1);
//Clear Symbols();
include ("getOpenWindowNames.jsl");
// Which windows are open now?
preWindowList = namesOfOpenWindows();
// Open a table
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Find out what scripts are in the table
dts = dt << GetTableScriptNames;
// Run every script
for (s=1, s<=NItems(dts), s++, dt << runScript(dts[s]));
// Which windows are open now?
postWindowList = namesOfOpenWindows();
//// Journal the contents of each 'new' window
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Re: チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するスクリプトを作成するにはどうすればよいですか?@ian_jmp 。 私は今、さらにいくつかのテストを行っています。 スクリプトのこの部分が機能していません。
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
スクリプト内のこれより上のすべては期待どおりの結果をもたらしますが、それは上記の for ループ ブロックをコメントした場合に限られます。
また、チャートをジャーナルに取り込まないので、何か間違ったことをしていない限り、for の見た目より上のコードだけが期待どおりに動作するようです。
Re: チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するスクリプトを作成するにはどうすればよいですか?@ian_jmp 。 あなたのスクリプトを次の方法で使用しようとしています。
データファイルをロードしてさまざまなチャートをプロットするスクリプトを作成しました。
partID = "part012"; // specifies part ID
DataTable = getDataTable4WfrID2(partID,partID); // loads test data table corresponding to the partID and names it the same as partID
include ("allGraphPlotter.jsl"); //plots all necessary charts上記のスクリプトは期待どおりに機能します。
それから(上の4行目で)次のようにしました含むチャートをジャーナルに送信するための以下のようなスクリプト(コメント行に注意してください)ですが、機能しません。
どこで間違っているのでしょうか(おそらく include ステートメントまたは関数呼び出し、たとえば、output = namesOfOpenWindows() )?
NamesDefaultToHere(1);
// Returns a list containing the names of all the currently open windows in a session
namesOfOpenWindows =
Function({}, {DefaultLocal},
openWindows = Window();
openWindowNames = {};
For(w=1, w<=NItems(openWindows), w++, InsertInto(OpenWindowNames, OpenWindows[w] << GetWindowTitle));
openWindowNames;
);
// Which windows are open now?
preWindowList = namesOfOpenWindows();
// Open a table
//dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Find out what scripts are in the table
//dts = dt << GetTableScriptNames;
// Run every script
//for (s=1, s<=NItems(dts), s++, dt << runScript(dts[s]));
// Which windows are open now?
postWindowList = namesOfOpenWindows();
// Journal the contents of each 'new' window
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Re: チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するスクリプトを作成するにはどうすればよいですか?出力から特定のレポートを選択するのは非常に簡単ですが、非常に具体的です。始めるには、時間をかけてスクリプト ガイドを読むことをお勧めします。その後、正確なレポートを取得する方法に関する具体的な質問は、ドキュメントで回答されるか、コミュニティが回答できるようにより詳細な質問を提供することができます。
Re: チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するスクリプトを作成するにはどうすればよいですか?ありがとう@ian_jmp 。
あなたのスクリプトは、特に私が JMP (MATLAB から来たもの) に比較的慣れていないので、非常に便利そうです。
しかし、私はあなたのコメントが理解できません。スクリプトがテーブルに保存されていない場合」。
私のスクリプトは保存され、新しいテストデータの分析のために変更されません(私のOPで述べたように)。
また、ジャーナルに送信するために必要なのは、各スクリプトからの特定のチャートと一部の計算された分析データ (JMP も計算する他のパラメーターではなく、たとえば中央値や標準偏差など) だけです。 JSL でこれを実現するにはどうすればよいでしょうか?
Re: チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するスクリプトを作成するにはどうすればよいですか?既存のスクリプトを変更したくない場合は、この種のアプローチを試すことができます。 スクリプトがテーブルに保存されていない場合は、JSL の「Include()」関数を確認してください。
NamesDefaultToHere(1);
// Returns a list containing the names of all the currently open windows in a session
namesOfOpenWindows =
Function({}, {DefaultLocal},
openWindows = Window();
openWindowNames = {};
For(w=1, w<=NItems(openWindows), w++, InsertInto(OpenWindowNames, OpenWindows[w] << GetWindowTitle));
openWindowNames;
);
// Which windows are open now?
preWindowList = namesOfOpenWindows();
// Open a table
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Find out what scripts are in the table
dts = dt << GetTableScriptNames;
// Run every script
for (s=1, s<=NItems(dts), s++, dt << runScript(dts[s]));
// Which windows are open now?
postWindowList = namesOfOpenWindows();
// Journal the contents of each 'new' window
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Re: チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するスクリプトを作成するにはどうすればよいですか?ありがとう。 はい、これは私が従うべきアプローチを示しています。
ただし、ジャーナルを生成するスクリプト内にデータファイルの読み込みスクリプトやグラフ描画・解析スクリプトなどを書き込む必要があることに注意してください。
私の場合、データをロードし、必要なグラフをプロットし、必要な分析を生成する別のスクリプトがすでにあります。
私には方法があります既存のスクリプトを参照するジャーナル スクリプト内で再度記述せずに、ジャーナル スクリプト内から実行しますか?
Re: チャート/分析用の既存のスクリプトを手動で実行せずに、チャートと分析データをジャーナルに送信するスクリプトを作成するにはどうすればよいですか?Web で「JMP ジャーナルのスクリプト作成」を検索すると、さらに多くの例が表示されますが、正しい方向に進む可能性があります。
Names default to here(1);
dt = Open("$SAMPLE_DATA\Big Class.jmp");
// New Journal with a couple headings
nw = New Window("My Journal", <<JOURNAL></JOURNAL>