JSLスクリプトに関する質問:チャートを1つの出力にまとめる方法<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
私はJSLスクリプティングが初めてです。
分析用にユーザーが選択する列データがほとんどありません。
私が書いたコードは選ばれた列に等しいいくつかのグラフを生成するでしょう。
すべてのグラフを1つの出力にまとめる方法を知ってもいいですか。
誰かが私にコードや構文を提供するのを手伝ってくれる?
コード(これらの変数渡しルーチンを破棄しました):
(i = 1、i <= tot_entry、i ++、
MyDist = Distribution(
連続配信(
カラム(eval(アナリスト) ))、Stack(1)、Horizontal Layout(1)、ノーマル分位点プロット(1)、茎と葉(1)、
機能分析(LSL(eval(lsl))、USL(eval(usl))、ターゲット(eval(ターゲット)))、
SendToReport(
Dispatch({}、"Distributions"、OutlineBox、{タイトルの設定( "Distribution of" || title)})、
)
;
;
再:JSLスクリプトに関する質問:チャートを1つの出力にまとめる方法<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />PMRozが述べたように、これらの素晴らしいスクリプトはJMP9では動作しません。 以下はJMP9と10で動作するようにわずかな変更を加えたものです。 パネルボックスは不要です。 デモとして追加しました。
私が採用したいアプローチは、私のディスプレイウィンドウやダイアログの一般的な構造やレイアウトを構築してから、分析、グラフ、表をドロップすることです。
ディストリビューションの周囲に表示ボックス(HListBox)をラップすることによって、それはまだアクティブです。 しかし、一度それを1つのウィンドウに割り当てると、それ以降の貼り付けや追加はクローン表示または非アクティブ表示になります(ジャーナルレポートのように)。
だから私の同僚と私が新しいJSLユーザーに教える3つのステップは次のとおりです。
1)レイアウト、一般的な表示用のテンプレートを作成し、ウィンドウ内の各プレースホルダのハンドルを作成します。
2)各分析または分析グループごとディスプレイボックス(HListBox、VListBox、OutLineBox、またはPanelBox)内にディスプレイを「隠して」作成します。など)、その後
3)この表示を追加手順1で作成したウィンドウ内のプレースホルダーに。
この建物を「ボトムアップ」と呼びます。このアプローチは、各変数LSLの異なる仕様制限のような特別なケースを管理することをはるかに容易にしますとUSL など ステップバイステップで問題をデバッグします。
// ==================スクリプティング
nw =新しいウィンドウ( "Capability Charts"、lub);開く( "$ SAMPLE_DATA / Big Class.jmp");
analyseistist = {"身長"、"体重"};
tot_entry = N個の項目(アナリスト)。
lsl = 80。
usl = 90。
目標= 70。
title = "私のタイトル";
nw =新しいウィンドウ( "機能チャート"、
pb =パネルボックス( "Capability"、
lub =ラインナップボックス(N Col(1))
;);
(i = 1、i <= tot_entry、i ++、
hlb = HlistBox(分布(
連続配信(
カラム(Eval(アナリスト) )、
積み重ね(1)、水平レイアウト(1)、通常の分位図(1)、茎と葉(1)、
能力分析(LSL(Eval(lsl))、USL(Eval(usl))、
ターゲット(評価(ターゲット))))、
SendToReport(ディスパッチ({}、"Distributions"、
OutlineBox、{Set Title( "Distribution of" || analyselist )))
;);
lub <<追加(hlb)
;
Re: JSL スクリプトの質問: 複数のチャートを 1 つの出力にまとめる方法こんにちは。MyDistというオブジェクトを作成するだけでなく、最初は空のLine Up Boxに分布を追加し、そのLine Up Boxをウィンドウに表示することもできます。以下はそのような例ですが、ここで使用した実際の数値は、当然ながら工程能力分析の文脈では意味をなさないでしょう。JMP 9では動作しないと思われるため、JMP 10で実行していることにご注意ください。
開く( "$SAMPLE_DATA/Big Class.jmp" );
analyzelist = {"身長", "体重"};
tot_entry = N アイテム( analyzelist );
lsl = 80;
90 です
ターゲット = 70;
title = "私のタイトル";
lub = ラインナップボックス( N 列( 1 ) );
i = 1, i <= tot_entry, i++, の場合
lub << append( 分布(
連続分布(
列(評価(分析リスト))、
スタック( 1 )、水平レイアウト( 1 )、正規分位図( 1 )、幹葉図( 1 )、
能力分析(LSL(Eval(lsl))、USL(Eval(usl))、
ターゲット(評価(ターゲット)))))、
SendToReport( Dispatch( {}, "配布",
OutlineBox、{タイトルを設定(「配布」||タイトル)}))
)));
nw = New Window( "Capability Charts", lub );
/*
申し訳ありませんが、このウィンドウにスクリプトを直接貼り付けることができないようです。スクリプトウィンドウに貼り付けた後は、「編集」メニューから書式を変更することができます。こちらは、グラフビルダーから出力をグリッド化した、同様の例です。
*/
dt = Open( "$SAMPLE_DATA/Car Physical Data.jmp" );
colnames = dt << 列名を取得する(数値);
show(列名);
または = line up box(ncol(3));
for(i=1, i<=nItems(列名), i++,
lub << append(グラフビルダー(
サイズ(300, 200)、コントロールパネルを表示(0)、凡例を表示(0)、
変数( X( :Country ), Y( eval(char(colnames )) ) ),
要素(ボックスプロット(X、Y、凡例(0)、ジッター(1)、外れ値(1)、ボックススタイル(「外れ値」)))
))
);
nw = new window("ボックスプロット", lub);
Re: JSL スクリプトの質問: 複数のチャートを 1 つの出力にまとめる方法書式と色をすべてそのまま残したスクリプトを貼り付けるには、まずJMPからMS-Wordにコピーし、次にWordからこのフォーラムにコピーします。適切なインデント量にするために、タブ文字を4つのスペースに置き換えています。例えば、次のようになります。
dt= 開ける( "$SAMPLE_DATA/車の物理データ.jmp" );
列名=dt<<列名を取得する(数値);
見せる(列名);
その= ラインナップボックス( 北コル( 3 ) );
のために( i = 1, i <= N 個のアイテム(列名), i++,
その<<追加(
グラフビルダー(
サイズ(300, 200 ),
コントロールパネルを表示(0 ),
凡例を表示(0 ),
変数( X (:国), Y( 評価( チャー(列名[ i ] ) ) ) ),
要素(
ボックスプロット(
X,
Y,
伝説(0 ),
ジッター(1 ),
外れ値(1 ),
ボックススタイル(「アウトライヤー」 )
)
)
)
)
);