二変量テーブルへの参照線として列を使用するにはどうすればよいですか? 管理上限、警告上限、警告下限、管理下限の4列のデータテーブルがあります。 データテーブルには、多くの変数を含む列もあります。 各変数には特定の制限値があります。 変数ごとに値と時間の関係をプロットしようとしていますが、その特定の変数チャートの制限をy軸に追加したいと思います。
例としてビッグクラスのjmpファイルを添付しましたが、UCL、CL、LCLで構成されています。 私が欲しいのは、性別(変数)ごとに体重(私の値)と身長(時間)をグラフ化することです。 ただし、UCL、CL、およびLCL列を、適切な変数チャートのy軸の制限として表示する必要があります。 これがちょっと明確だといいのですが? どんな助けでもありがたいです。
簡単な質問。 (:sex)だけでなく、制限の種類が異なる複数のByグループがある場合はどうなりますか?
Summarize( dt, byVals = by( :sex, :age ) );
UCL = :UAL[(dt << get rows where( :sex, :age == byVals[i] ))[1]];
現実には、UWLチャートとLWLチャートの両方が失敗しています。UWLチャートに問題が表示されないだけです。グラフの値が欠落している値「。」のときにグラフに参照線を追加を指定すると、その時点からグラフのコードが機能しなくなるようです。UWLチャートの場合、LWL参照線の欠落値に遭遇したときにコードが機能しなくなる前に、表示するすべての参照線がリストされています。ただし、LWLチャートでは、UWL参照線がLWL参照線の前に試行され、UWL参照線の欠落値が見つかるとコードは機能しなくなります。これを回避するいくつかの異なる方法があります。これを処理する1つの方法を以下に示します。
Names Default To Here( 1 );
dt = Current Data Table();
// Get all of the by values, since separate code will have to be added for each
Summarize( dt, byVals = by( :sex ) );
// Generate the Plot code
op = Overlay Plot(
X( :height ),
Y( :weight ),
by( :sex ),
SendToReport(
Dispatch(
{},
"101",
ScaleBox,
{Label Row( Label Orientation( "Vertical" ) )}
)
)
);
For( i = 1, i <= N Items( byVals ), i++,
// Get the LCL and UCL values for this by group. UWL is only for F and LWL is for M
UCL = :UAL[(dt << get rows where( :sex == byVals[i] ))[1]];
LCL = :LAL[(dt << get rows where( :sex == byVals[i] ))[1]];
UWL = :UWarnL[(dt << get rows where( :sex == byVals[i] ))[1]];
LWL = :LWarnL[(dt << get rows where( :sex == byVals[i] ))[1]];
show(byvals[i],ucl,lcl,uwl,lwl);
// Make sure the UCL and LCL values are displayed
chartMin = Min( :weight[dt << get rows where( :sex == byVals[i])]);
chartMax = Max( :weight[dt << get rows where( :sex == byVals[i])]);
If(LCL < chartMin, chartMin = LCL );
If(UCL > chartMax, chartMax = UCL );
chartRange5% = (chartMax - ChartMin)/20;
chartMin = chartMin - chartRange5%;
chartMax = chartMax + chartRange5%;
// Generate the code to produce the LCL and UCL reference lines
Eval(
Substitute(
Expr(
op << SendToByGroup(
{:sex == __byVals__},
Y Axis[1] << {{Min( __min__ ), Max( __max__ ),
Add Ref Line( __UCL__, "Solid", "Medium Dark Red", "UAL", 1 ),
Add Ref Line( __LCL__, "Solid", "Medium Dark Red", "LAL", 1 ),
Add Ref Line( __WLVal__, "dotted", "Medium Dark Red", __WL__, 1 )
}}
)
),
Expr( __byVals__ ), byVals[i],
Expr( __UCL__ ), UCL,
Expr( __LCL__ ), LCL,
Expr( __WLVal__ ), If(isMissing(UWL)==0,UWL,LWL),
Expr( __WL__ ), If(isMissing(UWL)==0,"UWL","LWL"),
Expr( __min__ ), chartMin,
Expr( __max__ ), chartMax
)
);
);私は先に進み、必要なものに合わせてスクリプトを変更しました。 それは私が必要とするもののために働きます。ただし、参照行を追加したため、問題が発生しています。 添付されているのは一般的な例です。 追加の列を持つBigclassが添付され、スクリプトが変更されました。 警告の上限を含めようとしていますが、値は性別Fでのみ使用できます。 また、Mグループには、警告の下限があります。 スクリプトを実行すると、グループFの最初のグラフにUWLが表示されますが、2番目のグラフグループMにはLWLが表示されません。 これを回避する方法はありますか?
ちょうど私が必要なもの。 もちろん、これはJMP12でのみ機能します。 ありがとうございました。
これまでにこれをカバーしたディスカッショントラックがあります。見る:
列にUCL/LCLを定義する