グラフ ビルダーのすべての軸の制限を、表示されたデータから計算された値に設定するためのスクリプトワークフローの 1 ステップを高速化するために、グラフ ビルダーのすべての Y 軸の軸範囲を、表示されたデータから計算できる特定の値 (変位値) に自動的に設定するスクリプトを作成しようとしています。
計画は次のとおりです。
- 軸ラベルを取得する
- データ テーブルの対応する列を使用して、必要な制限を計算します。
- それに応じて制限を設定します。
これは、ローカル データ フィルターを使用したり、ラベルを変更したりできるため、最初に予想したよりも複雑であることが判明しました。
したがって、各軸の異なる Y 値をグラフ ビルダーから直接取得したいと考えています。 特定の軸から値を取得する方法は?
たとえば、私が持っている場合
R = Current Report();
AB = R[axisbox(2)] ;
ab_min = -100; // How to access the value list containing all the values that are used by default to compute axis limits of AB here?
ab_max = 100;
AB << Min(ab_min);
AB << Max(ab_max);
「クロス」を使用することで、いくつかの FrameBox が作成されましたが、それらから値を取得する方法がわかりませんでした。
それを行うためのアイデアやより良い方法はありますか?
ありがとうロブ
グラフィックスクリプティングRe: グラフ ビルダーのすべての軸の制限を、表示されたデータから計算された値に設定するスクリプトこのようなものは機能しますか? XPath を使用してすべての軸ボックスを取得し、Y 軸を特定します。 その後、それらを操作できるはずです
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
axisboxes = Report(gb) << XPath("//AxisBox");
/*y-axis seems to be even numbers*/
yaxis = axisboxes[2::N Items(axisboxes)::2];
ymin = yaxis << get min;
ymax = yaxis << get max;
show(ymin, ymax);
Re: グラフ ビルダーのすべての軸の制限を、表示されたデータから計算された値に設定するスクリプト次の JSL は、現在のレポートのすべての AxisBox() のリストを返します。AxisBox(1) と AxisBox(2) の両方。したがって、エントリ 2、4、6 などを処理して、すべての AxisBox(2) にアクセスすることができます。
r=current report();
yMaxs = ((r[1]<<TOP parent=""></TOP>
Re: グラフ ビルダーのすべての軸の制限を、表示されたデータから計算された値に設定するスクリプトやあ@jthi 、 こんにちは@txnelson
ありがとう、でも私たちには少し誤解があるようです。
すべての y 軸から現在の最小値と最大値を取得したくありません。 より適切な制限を計算するために、表示されたデータの対応するすべての y 値を取得したいと思います。
たとえば、y 軸に 1000 個の値が表示されている場合、それらの 1000 個の y 値のリストまたはベクトルを取得したいと考えています。
Re: グラフ ビルダーのすべての軸の制限を、表示されたデータから計算された値に設定するスクリプトデータテーブルから値を取得するだけではうまくいかないのはなぜですか?行が分析から除外されている場合、またはローカル データ フィルターが適用されている場合は、それらの条件を適用するだけで済みます。
names default to here(1);
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
allHeights = dt:height << get values;
// or if you want just the unique values of the column height, this
// is my prefered way to get them
uniqueHeights = associative array(dt:height<<GET values=""> </GET>
Re: グラフ ビルダーのすべての軸の制限を、表示されたデータから計算された値に設定するスクリプト現在、グラフビルダーから軸にプロットされた列または列名を取得する信頼できる方法がわかりません。 私が考えることができる唯一の方法は、軸ラベルを取得することですが、これはユーザーによって変更され、テキストが列名ではなくなった可能性があります。 さらに、列はグラフビルダーで直接変換/変更できます。 そのような列が軸にプロットされている場合、データ テーブルでその列をまったく見つけることができません。 はい、データ テーブルに正しい列が見つかった場合は、ローカル データ フィルターからフィルター設定を適用する必要があります。
プロットされたデータ値を何らかの方法で軸/グラフビルダーから直接取得できた場合、プロットされた列の種類、適用されたフィルター、ユーザーが変更したラベル、他に何が問題を起こし、スクリプトが壊れる可能性があるかは重要ではありません.
Re: グラフ ビルダーのすべての軸の制限を、表示されたデータから計算された値に設定するスクリプトこのようなものは、マーカー値を取得する必要があります
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
frame = Report(gb)[FrameBox(1)];
frames = Report(gb) << XPath("//FrameBox");
marker_segs = (frames << Find Seg(Marker Seg(1)));
xm = marker_segs << Get X Values;
ym = marker_segs << Get Y Values;
show(xm, ym);
jmpがポリゴンの重心点を自動的に見つけたら、グラフビルダーからx&y値(座標)をエクスポートします
色やマーカーの種類など、レジェンド ボックスの情報を取得する方法