| m1 | M2 | 立方メートル | m4 | m5 | m6 | m7 | m8 | デバイス | 家族 |
| 1 | 2 | -2 | -1 | -3 | 2 | -1.5 | 0.5 | D1 | F1 |
| 2 | -2 | 2 | 3 | 2 | -1 | 1 | 2 | D2 | F1 |
| 1.5 | 2 | 2.5 | 2 | 0.5 | 1 | -1 | -1.5 | D3 | F1 |
| -1 | 1 | -1 | -1 | -0.5 | 1 | 0.5 | -1 | D4 | F1 |
| 2 | -3 | 1 | -2 | 1 | -2.5 | 0.5 | -1 | D5 | F1 |
| -3 | -0.5 | -1 | 1.5 | 。 | 。 | -1 | 1 | D6 | F2 |
| 2.5 | 1 | 0.5 | 1.5 | 。 | 。 | -0.5 | 2 | D7 | F2 |
例としてこの表を使用します。m1〜m8がいくつかの装置のいくつかの試験パラメータであると仮定する。実際の表では、照会されたテストパラメータの数が異なる場合があります。JSLを使用して、さまざまなファミリのデバイス間でこれらのパラメータに変動グラフをプロットしたいです。
JSLでは、
myVC = Variability Chart(
invisible,
Y(Eval(parameterlist)),
X(:Device),
By(:Family)
);
パラメータリストとして、パラメータm1〜m8をグループ化しました。ただし、データが欠落しているため、F2のチャートをプロットしようとするとコードがエラーになります。
不足しているデータを処理する方法はありますか?私はJMPにまだデータを持っているパラメータのためのF2のための変動図をプロットして欲しいです。(この場合、m1、m2、m3、m4、m7、m8)。その後、私はJMPに家族別の変動図を表示させ、それをhtmlレポートとして保存してもらいたいです。
F1 - m1
。
。
F1 - m8(レポートに変動図が表示される順序)
F2 - m1
。
。
F2 - m8
テストパラメータの数、デバイスの数、および異なるファミリの数は、クエリによって異なる場合があります。
XiangLoh、
以前の投稿を確認することをお勧めします。
https://community.jmp.com/t5/Discussions/JSL-Generate-xy-Plot-that-loops-through-columns-with-different/mp/56020#M31438
勧告は、私がそこに行った、私はあなたのデータに適用するでしょう。これがsteps /擬似コードです。
- パラメータリストを作成する(すでに完了)
- 実行し、要約します(fgrp = By(:Family))。fgrpはファミリー値のリストです
- nw =新しいウィンドウ( "テスト"、vl = VListBox());
for( i=1, i<=nitems(fgrp), i++,
fam = fgrp[i];
for(j=1, j<=nitems(parameterlist), j++,
param = parameterlist[j];
idx = dt << get rows where(:Family == fam);
// compute the number of non-missing values for column(param)[idx]
// if that number is greater than 0 or some minimum you set then
myVC = dt << Variability Chart( invisible, Y ( AsColumn(param) ) , X(:Device), By(:Family), where(:Family==fam) );
get rid of the where where textbox and append to VL
); //end j
); //end i
この方法はあなたに多くの柔軟性を与えます。 家族ごとに異なるHTMLを保存することも、順序を変更して変数から家族ごとに印刷することもできます。 2つのコメント付きステップのコードの代わりに、試してください()
Try( myVC = dt << Variability Chart( invisible, Y ( AsColumn(param) ) , X(:Device), By(:Family), where(:Family==fam) );
// get rid of the where where textbox and append to VL
, //else do nothing
Show( "variable " || param || " for Family == " || fam || "has no valid data." )
);
それは多くの仕事のように見えます、しかし、私は彼らが一度これをした後に、そしてほとんどのスクリプト作成者がこの方法が提供するオプションの量を理解し、彼らがそれを頻繁に使うことを発見しました。
がんばろう!