5 つのサマリー パラメーター (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?データテーブルの列 1 に part_ID エントリがあります。 列 2 には、5 つの要約パラメーター (最小、Q1、中央値 Q3、最大) とテスト限界 LSL、USL が表示されます。 列 1 では、パーツ ID が 7 回繰り返され (5 つの概要パラメータ + LSL および USL、合計 7 に対応)、その後次のパーツ ID が表示されます (列 2 には対応する 7 つの数字)。
データテーブルの形式を変更したくない(つまり、転置したくない)。
5 つのサマリー パラメーターと制限を使用して、箱ひげ図トレンド チャート (X 軸にパーツ ID) を作成したいと考えています。 JSL経由でこれを行うにはどうすればよいですか?
自動化とスクリプト作成ウィンドウズRe: 5 つの集計パラメーター (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?データ形式をより良いものに変更しない特別な理由はありますか?
から

管理しやすいものに

どの行がどの行であるかを示すインジケーターがない場合、それらは常に同じ順序であると確信していますか?
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?@jthiありがとう。 私の元のデータは下の表の形式ですが、追加の列として測定されたパラメーター名が追加されています。 この形式では、7 つのパラメーターを使用して箱ひげ図を作成する方法がわかりました。
JMPs Summary () 関数を使用して、トップテーブルの形式でデータを取得します。
このフォームは、測定されたパラメーター データ (たとえば、上の表の列 3) を列内に表示する形式で他のグラフをプロットするために必要です。 同じ部品に異なる範囲の複数の測定パラメータがあり (別の列に表示されます)、それらを Y 軸にプロットします。異なる測定パラメータのデータを列に含めるだけで、それらのパラメータに対して異なる Y 軸スケールを設定できます。 JMP (X 軸に部品 ID)。 さまざまな測定パラメータは相関しており、このようなプロットは相対的な傾向を理解するのに役立ちます。
私のデータがトップテーブルの形式である理由を上記で説明できれば幸いです。
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?この投稿はいくつかのアイデアを提供するかもしれませんすでに集計された値から箱ひげ図を作成する。
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?@jthi 。 ありがとう。 リンク先のレシピを見させていただきました。 説明されている方法は、データが 2 番目のテーブルの形式である場合にのみ機能するようですが、これは私が望むものではありません。
JMP に、指定された部品 ID (添付の列 1) の隣接する列 (添付のサンプル データセットのラベル) で指定された Min、Q1、Median、Q3、Max を使用して箱ひげ図を作成するように指示できる場合は、JMP が計算します。これらの値自体を各部分の値の分布から求めると、欲しいものが得られると思います。これをJSL経由で行うことは可能ですか?
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?Rect() と Line() を使用して箱ひげ図を構築してみることもできます (機能する可能性のある箱ひげ図セグメントもありますが、データをシミュレートするか、周波数を使用する必要があります)。
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?@jthiありがとう、箱ひげ図セグメントは私が望むことを行うために使用できると思います。
スクリプトインデックスの例からは、サンプルデータ(前に添付)のように各パーツID(x軸)の箱ひげ図をどのように生成するかはわかりません。
パーツ ID をループする必要がありますか? この場合、フレームサイズ、スケールはどのように決めればよいのでしょうか?
私のサンプルデータを使用して基本的な例を取得できれば便利です。

Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?ボックス プロット セグメントは、単一のフレーム ボックスに対して単一のボックス プロットを作成する場合にのみ使用でき、中央に表示される可能性があります。
Re: 5 つの集計パラメーター (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?@jthiありがとう。
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?現在のデータ形式を使用する必要がある場合でも、テーブルに新しい列を追加できます。 統計ごとに 1 つの列を作成して、前のリンクのオプション 1 に従うことも、2 つの列 (値 + 頻度) を追加してから 2 番目のオプションに従うこともできます。 または、グラフィック スクリプトを使用してさまざまなパーツから完全にカスタマイズして構築します。
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?@jthi 。 データをトップテーブル(および添付されている私のもの)の形式にする理由は、Yプロットごとにグループ内で異なるスケールを使用できるようにするためだけです。
https://community.jmp.com/t5/Discussions/Can-you-change-y-axis-scale-independently-from-other-y-axis/td-p/17649
ページオプションを使用したくないので、フォローしました@txnelson関連するデータを彼が提案した形式、つまり別の列に配置するという彼の提案(私が彼の提案を正しく理解していると仮定して)。
ページを使用せずに他の方法がある場合は、 @txnelsonの提案(別の同様の提案)ここ)、 是非聞きたいです :)。
Re: 5 つの集計パラメーター (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合、箱ひげ図を作成するにはどうすればよいですか?@jthiこのトピックに関するご提案をありがとうございます。以前にこのスレッドに添付したサンプル データと同じデータ形式を維持する必要があるため、このトピックに戻ります。 以下のスクリプトを使用すると、必要なものをほぼ取得できます (もっと良い方法があるかもしれませんが、以下は私の話です)。 2 つの点で助けが必要です。
- 各partIDの最小値と最大値を結ぶ垂直の黒い線を描く必要があります(現在、ローカルデータフィルタでは選択されていません、下の左のグラフ)。 ローカル データ フィルター (下の右のグラフ) で最小/最大が選択されている場合、それらは垂直の黒い線 (右のグラフでは黒い点の代わりに) で接続され、箱ひげ図の構造をほぼ理解することができます。十分で目的に合っていると思います。 パーツIDごとにJSL経由でこの垂直線(V Line ()?)を取得するにはどうすればよいですか?
- 次に、実際のデータで測定したパラメータ (サンプル データの電流、抵抗) は >40 になります。 したがって、スクリプトで行った方法で凡例の色の設定を行うつもりはありません。 凡例の色をデフォルトで黒に設定する方法 (そうしないと、マーカーの色を設定した方法ではなく、JMP が各 Y グループに異なる色を付けます)。
Names Default To Here (1);
clear log ();
dt = Current Data Table ();<BR />
//Set LSL/USL marker and color
dt << Row Selection(
Select where( Contains( :Label, "LSL" ) | Contains( :Label, "USL" ) ),
Match case( 1 ),
Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( 29 ) << Colors( "Red" );
dt << Clear Select;<BR />
// Set Q1/Q3 marker and color
dt << Row Selection(
Select where( Contains( :Label, "Q1" ) | Contains( :Label, "Q3" ) ),
Match case( 1 ),
Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( 29 ) << Colors( "Black" );
dt << Clear Select;<BR />
//Set Median arker and color
dt << Row Selection(
Select where( Contains( :Label, "Median" ) ),Match case( 1 ),
Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( 0) << Colors( "Blue" );
dt << Clear Select;<BR />
// Plot chart
gb = Graph Builder(
Size( 404, 412),<BR /> Show Control Panel( 0 ),
Variables( X( :partID ), Y( :Resistance ), Y( :Current ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 37 ), Jitter( "None" ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 35 ), Jitter( "None" ) ) ),
Local Data Filter(
Add Filter(
columns( :Label ),
Where( :Label == {"LSL", "Median", "Q1", "Q3", "USL"} )
)
),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
37,
Properties( 0, {Line Color( 0 )}, Item ID( "Resistance", 1 ) )
), Legend Model(
35,
Properties( 0, {Line Color( 0 )}, Item ID( "Current", 1 ) )
)}
)
)
);

Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?上記に追加されたこの追加スクリプトは、V Line () を使用して必要なものを提供します。
PartID =1 の場合のみの例 (下のグラフ)。 これをループ内で自動化するにはどうすればよいですか?
gbr = gb << report;
// For FrameBox (1)
Q1_Part1_Para1 = 2.75;
Q3_Part1_Para1 = 3.1;
// For FrameBox (2)
Q1_Part2_Para1 = 250;
Q3_Part2_Para1 = 302;
PartNo = 1;
Eval(EvalExpr(gbr [Framebox (1)]<< Add graphics Script (
Pen color (black); V Line (PartNo-1, Q1_Part1_Para1, Q3_Part1_Para1);
)));
Eval(EvalExpr(gbr [Framebox (2)]<< Add graphics Script (
Pen color (black); V Line (PartNo-1, Q1_Part2_Para1, Q3_Part2_Para1);
)));
Re: 5 つの集計パラメーター (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?Summarize() を使用して、一意のpartID 値を取得できます。 次に、データテーブルの添字と Loc() の組み合わせを使用して、ループ中に特定の PartID の行を取得できます。 次に、値を計算/取得して行を追加します
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?@jthi
>> Summarize() を使用して、一意のpartID 値を取得できます。
わかりました
>>その後、Loc() と組み合わせてデータテーブルの添字を使用して、ループ中に特定の PartID の行を取得できます。
Loc() は決して使用しません。 これにより、各partIDのX座標が得られますか? 私のサンプルデータを使用した例は非常に役立つでしょう。
>>次に、値を計算/取得し、行を追加します。
他の数値、最小値、最大値、Q1、Q3、中央値がすでに計算されているので、各パーツの X 座標を計算するということですか。
また、各 FrameBox をループする必要があるのでしょうか、それとももっと簡単な代替手段はあるのでしょうか?
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?PartID はグラフ内でもテーブル (および要約) 内と同じ順序になっているため、x 座標はすでにわかっています。 必要なすべての値がすでに計算されている場合は、それらをデータ テーブルから取得するだけです。 以下は、Summarize、Loc、およびデータテーブルの添字を使用した例です。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, uniq_vals = by(:age)); // Summarize returns characters
For Each({uniq_val}, uniq_vals,
val_rows = Loc(dt[0, "age"], Num(uniq_val));
show(val_rows);
f_rows = val_rows[Loc(dt[val_rows, "sex"], "F")];
show(f_rows);
f_heights = dt[f_rows, "height"];
show(f_heights);
);
フレーム ボックスは 2 つしかありませんが、その中に追加したい行は複数あるため、FrameBox をループする (partIds をループする) 必要はありません。
編集:
また、Loc の代わりに << Get Rows Where を使用することもできます。これは通常は使いやすいためです。
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?@jthi 。 わかりました。 ありがとう。 これを試してみます(行き詰まったら戻ってきます)。
実際のデータセットでは、測定されたパラメーターの数は 50 を超えているため (それ以上の可能性があります)、50 個のパラメーター傾向プロットをすべて重ねてプロットすると、50 個の FrameBox が存在することになります。したがって、FrameBox のループに関する質問になります。
また、PartID = 1 の場合、上記のスクリプトの V Line () の X 座標として X= 0 を使用します。 これは本来あるべき姿でしょうか (つまり、V ラインの x 座標は 1 と表示されていますが、1 ではなく 0 から始まります)?
Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?パラメーターが非常に多い場合は、追加のループを持つことをお勧めします。
X = 0 については、試してみることをお勧めします。 何が起こるか見てみましょう (通常、これが最も多くのことを学ぶ方法です)。 X 軸の設定からも、値が 0 でラベルが 1 であることがわかります。

Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?@jthiわかりました。 ありがとう。 もう一つ気になることがあります。 スクリプトでジッターをオフにしましたが、上部 (Q3) と下部 (Q1) のマーカーがオフセットして表示されたままです。 これをテストする前に、アタッチされたデータ テーブルを使用してスクリプトを実行できます (私は JMP 16.2 を使用しています)。
オフにする必要がある別のジッター設定はありますか。
次のコマンドを使用して Q1 と Q3 のマーカーを設定すると、ジッター/オフセットがより明白になります (垂直線を描画する前にボックスの形状を取得しようとしているだけです)。ただし、水平マーカーを使用した場合でも、多少のオフセットが見られます。 何かが足りないのでしょうか?
// Q1/Q3 marker and color
dt << Row Selection(Select where(Contains( :Label, "Q3" ) ),Match case( 1 ),Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( "Π" ) << Colors( "Black" );
dt << Clear Select;
dt << Row Selection(Select where( Contains( :Label, "Q1" ) ), Match case( 1 ), Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( "Џ" ) << Colors( "Black" );
dt << Clear Select;
訂正: オフセットは、JMP によるチャートのレンダリングによるものと思われます。 チャートを水平方向に伸ばすと、オフセットが修正されます。
Re: 5 つの集計パラメーター (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?こうやってチェックしてる
frame = (gbr)[FrameBox( 1 )];
seg = (frame << FindSeg( Marker Seg( 1 ) ));
{method, axis, limit, spacing, seed} = seg << Get Jitter();Jitter を none に設定した後でも、「seed」の値が表示されます。
{"None", "XY", 1, 0, 184430754}私のポイントは震えていますか (実際にそう見えます)?
Re: 5 つの集計パラメーター (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?ジッターは「なし」に設定されています

これは、ランダムなノイズを加えるべきではないことを意味すると思います

Re: 5 つの要約パラメータ (最小値、Q1、中央値 Q3、最大値) と制限値 (LSL、USL) が特定のパーツ ID に対応する列にある場合に箱ひげ図を作成するにはどうすればよいですか?(このスレッド内の) 以前のスクリプトによって呼び出されたこの追加のスクリプトは、私が望んでいたものを実行します。 スクリプトは私のデータに固有のものですが、異なるフレームボックスにわたるループ内で V Line () をプロットする方法を示しています。
ローカル データ フィルターで Q1、Q2、および中央値を選択したグラフビルダーでボックスプロットに変更すると、適切なボックスプロットが取得されます。 V ライン () は最大値と最小値を結び、箱ひげ図の構造を完成させます。Q1、Q2 のみが選択され、残りのデータは無視されるため、正しいボックスが得られると思います (ローカル データ フィルターで Min や Max などのパラメーターをさらに選択すると、間違ったボックスが表示されます)。
Names Default To Here (1);
Clear Log ();
setVLines_atMinMax = Function ( {gbr, FrameboxNo, PartNo, Min, Max}, {},
Eval(EvalExpr(gbr [Framebox (FrameboxNo)]<< Add graphics Script (
V Line (Expr(PartNo-1), Expr(Min), Expr(Max));
)));
);
gbr = gb << report;
nParts =5;
nc = ncols (dt); //number of coulms in my data table
For (j =1, j <=(nc-1), j++,
FrameboxNo = j;
for ( i = 1, i <= nParts, i++,
ind = (7*i-3); //show (ind);
ind_next = (7*i -3) + 1; //show (ind_next);
PartNo = Num(:PartID[ind]); //show (PartNo);
Min = Column(nc) [ind]; show (Min);
Max = Column(nc) [ind_next]; show (Max);
setVLines_atMinMax (gbr, FrameboxNo, PartNo, Min, Max);
);
nc = nc-1;
);
//show (FrameboxNo); show (nc);
