3. つまり、JSL では次のようなことができるということです...
dt= 現在のデータテーブル();
dt:ParametricResponse<
//そしてその後...
group1spec=(dt:ParametricResponse<
もちろん、重要なのは、仕様を列に入力した直後に仕様を取得することではありません。仕様は前の行ですでにわかっています。ただし、列に埋め込まれたさまざまな仕様を使用してデータを保存すると、後でスクリプト自体にハードコーディングせずに、そのデータを列から取得することなく、この特定のデータに関連する仕様をスクリプトで適用できます。
列ペインの列の横にアスタリスクが表示されることから、これが機能していることがわかります。アスタリスクをクリックすると、テーブル内の新しい myspecs プロパティを確認したり、JSL からアクセスしたりできます。
実際、列のプロパティに内容を入れるのは非常に便利です。最近、データに列名がエンコードされている場合にこれを使用しましたが、列名にそのコードが必要か、それともよりわかりやすい名前が必要か判断できませんでした。JSL では、デコーダ テーブルとメイン テーブルの列をループして、わかりやすい名前をプロパティに入力し、列名を実行して列名とそのプロパティを入れ替える小さなスクリプトを作成するのは非常に簡単でした。意思。楽しい!
2.私は間違っているかもしれませんが、Xで使用されている列名または値に基づいてそれを行う方法はないと思います(「グループAからグループBに線を引く」)。各レベルの項目数は事前にわかりません)、X で使用するさまざまな属性ごとにデータを要約し、各グループに含まれるもの (取得したリスト内の項目数) をカウントアップし、その結果を使用して線の終端を定義します。したがって、このデータをグループ別に集計すると、各グループに 5 つの項目があることがわかりますが、1 に 4、2 に 7、3 に 5 などを見つけて、それを使用して行末を指定することもできます。
幸いなことに、変動グラフでは、データが null であってもグループ用のスペースが残されているため、どのグループがあるかだけでなく、Y パラメータに null 以外のデータがあるかどうかを確認する必要はありません。実際にプロット上に登場します。これは、他のより複雑なプロットの一部と対話したい場合に問題になります。任意の可能なデータに基づいて、最終的なプロット上にどのグループが存在するかを計算するのは非常に難しい場合があります。
1. 最後の行にこの変更を加えてみます...
[framebox(1)]<
r[framebox(1)]<
r[framebox(1)]<
r[framebox(1)]<
r[framebox(1)]<
r[framebox(1)]<
またはこれ...すべてのグラフィックス スクリプト行を 1 つのメッセージにまとめることができますが、ここで試したことを試してみると、線のスタイルは 1 行のみ持続し、ペンの色は青のままで、ペンのサイズも複数行持続することがわかります。 ....
r[framebox(1)]<
line({0,14},{5,14});linestyle(3);line({5,13},{10,13});line({5,15},{10,15});ペンサイズ(3);ライン({10,10.5},{15,10.5});ライン({10,13.5},{15,13.5}));
このデコーダは線種のヘルプに表示されます - 0 の実線、1 点線、2 点線、3 点線、または 4 点線...
より硬い: 素晴らしい、情報ありがとう。また、上記のスクリプトの一部をハイジャックして、変動グラフにグループごとの仕様制限を追加しました。さらにいくつか質問がありました。
1) 基準線 (点線、破線など) に使用される線の種類と色を変更するにはどうすればよいですか?
2) の使用追加グラフィックススクリプト関数で、線の長さ(X 軸方向)を描画するときにどの X サブグループを参照するかを JMP に伝える方法はありますか?たとえば、これをスクリプト化した方法では、「Run #」を使用して参照線を作成できますが、「Group」を使用して参照線の長さを定義したい場合はどうすればよいでしょうか?
3) 独自の列プロパティを追加する場合は、列プロパティ --> その他...について話していると思います。その後はどうなりますか?スクリプトを列プロパティのサブメニューにコピーするだけですか? [まだ存在しない場合は、これを独自のスレッドにする必要があるかもしれません]
前もって感謝します!
テーブルのテスト スクリプトは次のとおりです。
New Table( "グループ別の変動仕様制限 Test_Data",
行を追加( 15 )、
新しいスクリプト(
"変動チャート"、
o = 変動チャート(
Y( :パラメトリック応答 )、
X( :GROUP, :Run # ),
最大イター( 100 )、
コンバージョン制限( 0.00000001 )、
数値積分横座標( 128 )、
数値関数 Evals( 65536 )、
分析タイプ( Name( "最適な分析の選択 (EMS REML ベイジアン)" ) )、
プロセス変動( 0 )、
標準開発チャート( 0 )、
SendToReport(
急送(
{"パラメトリック応答の変動チャート"},
「2」、
スケールボックス、
{最小( 8.92666666666667 )、最大( 15.35 )、増加( 1 )、
マイナー ティック( 1 )}
)
)
);
r = o << レポート;
r[framebox( 1 )] << addgraphicsscript( Line( {0, 12}, {5, 12} ) );
r[framebox( 1 )] << addgraphicsscript( Line( {0, 14}, {5, 14} ) );
r[framebox( 1 )] << addgraphicsscript( Line( {5, 13}, {10, 13} ) );
r[framebox( 1 )] << addgraphicsscript( Line( {5, 15}, {10, 15} ) );
r[framebox( 1 )] << addgraphicsscript( Line( {10, 10.5}, {15, 10.5} ) );
r[framebox( 1 )] << addgraphicsscript( Line( {10, 13.5}, {15, 13.5} ) );
)、
新しい列( "グループ",
文字( 4 )、
公称、
選択したものを設定、
値を設定(
{"1"、"1"、"1"、"1"、"1"、"2"、"2"、"2"、"2"、"2"、"3"、"3"、" 3」、「3」、
"3"}
)
)、
新しい列( "実行 #",
数値、
継続的、
Format( "ベスト", 12 ),
設定値( [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5] )
)、
新しい列( "パラメトリック応答",
数値、
継続的、
Format( "ベスト", 12 ),
値を設定(
[13.02、13.05、12.98、12.62、12.79、13.9、13.86、14.1、14、13.99、12.21、
12.56、12.89、11.3、12]
)
)、
行の状態を設定( [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] )
)
グラフのテスト スクリプトは次のとおりです。
o=変動チャート(
Y( :パラメトリック応答 )、
X( :GROUP, :Run # ),
最大イター( 100 )、
コンバージョン制限( 0.00000001 )、
数値積分横座標( 128 )、
数値関数 Evals( 65536 )、
分析タイプ( Name( "最適な分析の選択 (EMS REML ベイジアン)" ) )、
プロセス変動( 0 )、
標準開発チャート( 0 )、
SendToReport(
急送(
{"パラメトリック応答の変動チャート"},
「2」、
スケールボックス、
{最小( 8.92666666666667 )、最大( 15.35 )、増分( 1 )、マイナーティック( 1 )}
)
)
);
r=o<<レポート;
r[framebox(1)]<
r[framebox(1)]<
r[framebox(1)]<
r[framebox(1)]<
r[framebox(1)]<
r[framebox(1)]<Re: 1 つの列に複数の仕様制限が含まれています
あなたがスクリプトに興味があるかどうかはわかりませんが、あなたが言及したことを達成するためにスクリプトを実行することは確かに可能です。スクリプトでできることは 2 つあります。
1) 複数の仕様レベルを列に保存できます。仕様制限プロパティを使用する代わりに、独自の列プロパティを作成するだけです。
2) グラフィックス スクリプトを追加することで、プロット上に独自の線を描くことができます。X 値が何であるべきかは明らかではありませんが、Oneway を使用して実行した場合、X スケールはグループごとに 1 つの整数ステップで実行されるようです。これは、Oneway での線の描画を示す例です...そして、変動プロットにチェックインしたところです - 同じように機能します - 0 から 1 までの X 値が最初のグループです...
新しいテーブル( "テストデータ",
行を追加( 24 )、
新しい列( "グループ",
文字( 4 )、
公称、
Set Property( "値の順序", {"REF1", "MED1", "MED2", "REF2"} ),
値を設定(
{"REF1"、"REF1"、"REF1"、"REF1"、"REF1"、"MED1"、"MED1"、"MED1"、"MED1"、
"MED2"、"MED2"、"MED2"、"MED2"、"MED2"、"MED2"、"MED2"、"REF2"、"REF2"、
"REF2"、"REF2"、"REF2"、"REF2"、"REF2"、"REF2"}
)
)、
新しい列( "X",
数値、
継続的、
Format( "ベスト", 12 ),
値を設定(
[27、28、30、32、34、34、36、38、41、31、33、34、37、39、42、44、30、31、
33、35、37、39、41、43]
)
)、
新しい列( "Y",
数値、
継続的、
Format( "ベスト", 12 ),
値を設定(
[52、57、62、64、66、54、56、58、59、58、57、60、64、66、75、76、50、51、
55、58、60、63、71、72]
)
)、
新しい列( "Y シグマ",
数値、
継続的、
Format( "ベスト", 12 ),
値を設定(
[4、5、3、6、8、6、8、4、6、9、7、8、6、7、6、5、3、4、2、6、5、8、5、9]
)
)
);
o=一方通行(
Y( :Y )、
X( :グループ )、
箱ひげ図( 1 )、
X 軸比例( 0 )、
総平均( 0 )、
SendToReport(
急送(
{}、
「一方通行の陰謀」、
フレームボックス、
{ディスパッチセグメント(
箱ひげ図セグメント( 1 )、
{ボックスのスタイル( "外れ値" )、線の色( "赤" )}
)、ディスパッチセグメント(
箱ひげ図セグメント( 2 )、
{ボックスのスタイル( "外れ値" )、線の色( "赤" )}
)、ディスパッチセグメント(
箱ひげ図セグメント( 3 )、
{ボックスのスタイル( "外れ値" )、線の色( "赤" )}
)、ディスパッチセグメント(
箱ひげ図セグメント( 4 )、
{ボックスのスタイル( "外れ値" )、線の色( "赤" )}
)}
)
)
);
r=o<<レポート;
r[framebox(1)]<
r[framebox(1)]<
もちろん、これをより一般的にするには、プロット上のどのグループが保存されている仕様のどれと一致するかを計算する必要があります。