こんにちは、
データテーブルには含まれていないが、スクリプトが実行されたときに生成される値をグラフ化するようにスクリプトにしようとしています。このプログラムは、これと同じように2列のデータのインポートから始まります。
| ポジション | フォーカスメトリック |
| 0 | 120 |
| -4 | 140年 |
| -8 | 165 |
| -4 | 160 |
| -0 | 130 |
次に、データを上下にスプラインでフィットさせて、2つの間のオフセットを決定します。問題は、データをグラフ化しようとしているときに発生します。GraphBuilderは変数がデータテーブルにないため、変数を見つけられません。これが私のコードです、everthingはGraphBuilderまではうまくいくようです。オフセットの折れ線グラフ、splineEval、およびバックラッシュのマーカーsplineMinを取得しようとしています。他の提案は大歓迎です、これは私にとって新しい言語です!
//Setup arrays for creating spline over data
x = Index(-100,0,1);
offset = Index(-20,20,0.1);
//Determine position minimum index
rPosMin = dt << GetRowsWhere(:Position == ColMin(:Position));
//Create spline coeficients over up/down scan of data
splineUp = SplineCoef(:Position[1::rPosMin-1], :FocusMetric[1::rPosMin-1], 1);
splineDown = SplineCoef(:Position[rPosMin+1::NRow()], :FocusMetric[rPosMin+1::NRow()], 1);
//Create array of least squares
for( i=1, i<=length(offset), i++,
s[i] = Sum(Abs(SplineEval(x,splineDown) - SplineEval((x-offset[i]),splineUp))),
);
//Create spline coefficient over regressed data
si = SplineCoef(offset,s,1);
//Find minimum from regressed data and determine backlash
rSplineMin = Loc(SplineEval(offset,si) == Minimum(SplineEval(offset,si)));
backlash = offset[rSplineMin];
print(backlash);
GraphBuilder(
ShowControlPanel(0),
Variables(
X(offset),
X(backlash, Position(1)),
Y(Values(SplineEval(offset,si))),
Y(rSplineMin, Position(1))
),
Elements(Line(X(1), X(2), Y(1), Y(2), Legend(5)))
);
それはうまくいきます。ご協力いただきありがとうございます!
最小値をテーブルの行として追加する方が簡単だと思います。スプライン点はスプラインの値を持ち、余分な点はバックラッシュの値を持ち、それを特別なタイプのGraphBuilder要素として呼び出します。 この曲線はあなたの例のデータを使っているので奇妙に見えるかもしれません。 スクリプトが添付されています。

わかりました。 データテーブルにそれらを持っていけば、個々のポイントごとに新しい列を作成する必要なしにマーカーとして作るために1つのポイントを選択することは可能ですか?最小点にマーカーを付けようとしていますが、そのインデックスのGraphBuilderのX、Yを設定しようとすると、「指定された列がデータテーブルに見つかりません」というエラーが表示されます。
GraphBuilder(
ShowControlPanel(0),
Variables(
X(:xoff),
X(:xoff[rSplineMin], Position(1)),
Y(:spline),
Y(:spline[rSplineMin], Position(1))
),
Elements(Line(X(1), X(2), Y(1) Y(2), Legend(3))),
その一点を選択してそこにマーカーを置くためにどのように私はスクリプトを書くことになるでしょうか?
JMP分析およびGrpahプラットフォームでは、参照テーブルからの列が必要です。
計算、オフセット、バックラッシュなどからテーブルを作成します。行列値を作成してから、この新しいテーブルを使用してGraphBuilderを定義します。