こんにちは、
リスト変数からの列を入力する列スイッチャーを使用するディストリビューション プラットフォームがあります。 これらの各列は異なる品質パラメータを表すため、SQL クエリから収集される異なる制限があります。
列スイッチャーが列を変更するときに、参照線を分散プラットフォームに動的に追加する方法はありますか? 現在、項目ごとに SendToReport をループで実行していますが、各列に必要な 2 つの参照行だけではなく、すべての列の参照行が一度に追加されてしまいます。
これを行う簡単な方法は、列スイッチャーが「列変更時」スクリプトをサポートしている場合です。そうすれば、以前の参照行を削除し、変更されるたびに新しい参照行を追加できます。 このようなものがサポートされているかどうかのスクリプトインデックス情報が見つかりませんでした。
JMPバージョン:14
has_limits = {"item 1", "item 2", "item 3"};
dist = dt << Distribution(
Continuous Distribution( Column( "item 1" ), Horizontal Layout( 1 ), Always use column properties( 1 ), Vertical( 0 ), Outlier Box Plot( 0 ) ),
Column Switcher( "item 1", has_limits )
);
For( n = 1, n <= N Items( has_limits ), n++,
tempUCL = Col Max( Column( dt, has_limits[n] || "_UCL" ) );
tempLCL = Col Max( Column( dt, has_limits[n] || "_LCL" ) );
Eval(
Eval Expr(
dist << SendToReport(
Dispatch(
{Expr( has_limits[n] )},
"1",
ScaleBox,
{Add Ref Line( Expr( tempUCL ), "Dashed", "Medium Dark Red", "UCL", 1 ), Add Ref Line(
Expr( tempLCL ),
"Dashed",
"Medium Dark Red",
"LCL",
1
)}
)
)
)
);
);カラムスイッチハンドラーはJMP 16まで追加されなかったようです。

以下に、部分的にそこに到達するスクリプトを示します。何らかの理由で、軸の値が削除されますが、データで試すことができれば、正しく動作させる方法がわかるかもしれません。コードは JMP 14 を使用して開発されました
names default to here(1);
dt = open("$SAMPLE_DATA/blood pressure.jmp");
has_limits = {"bp 8m", "bp 12m", "bp 6m"};
for(i=1,i<=nitems(has_limits),i++,
new column(has_limits[i] || "_UCL", values(matrix(quantile(.75,column(has_limits[i])<<GET values=""></GET>ありがとうございます。 欠落している軸の値はまだわかりません。非常に奇妙です (「読み込み中」カーソルも表示されます)。しかし、少なくとも正しい方向への一歩です。
回避策としては、JSL を実行し、レポート出力ウィンドウの赤い三角ボタンに移動して、[スクリプトの保存] を選択することが考えられます。これをスクリプト ウィンドウに保存し、スクリプトを実行します。私のテストでは、JMP が作成するコードに X Azis ラベルが欠落していることがわかりました。
バグを JMP サポートに送信しました。
うまくいくと思われる他の回避策は、パディングを追加することです (おそらく何かが axisbox の上にプッシュされているのでしょうか?)

または、軸設定からグラフフレーム内の目盛りを有効にします。ただし、これによりグラフの見た目が少し奇妙になるため、グリッド線も有効にした方がよいと思います

