グラフビルダーの別のページに、列変数ごとに範囲を指定して参照線を追加します。数値データの列が複数あり、さらに 1 つの数値連続日付時刻列が 1 列あります (最も近い秒単位)。これらのいずれかまたはすべてを、時系列の日付時刻でプロットして同時に表示できます。Graph Builder には、ページごとに分析を分離するために使用できる「グループ」文字名義列があります。
数値連続の日付列「イベント日付」がもう 1 つあり、これは各「グループ」値に一致する最も近い日付 (別のテーブルから結合) です。特定の「グループ」変数には、一意のイベント日付値が 1 つあります。「イベント日付」列から x 軸への参照線の追加を自動化またはスクリプト化したいのですが、ただし、「範囲を許可」を使用し、「グループ」列変数に基づいて、最小値を 12:00:00AM のイベント日付に設定し、最大値を 11:59:59 PM のイベント日付に設定し、各「グループ」が別のページに表示されるようにします。以下は、1 ページでの表示例と、参考としてグラフ ビルダーの軸設定の一般的な参照線ダイアログ ボックスを示しています。


基本的なデータ分析とモデリングデータの探索と視覚化Re: グラフ ビルダーの別のページに、列変数ごとに範囲を指定して参照線を追加するダイアログを使用してグラフビルダーを設定することを選択した場合

By() 列を Page 列として指定するのではなく、By() 列を使用することもできます。これを行うと、表示される各グラフ ビルダー表示出力に個別の範囲参照線が表示されます。

names default to here(1);
dt=
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{100, 120},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{140, 160},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
);Re: グラフ ビルダーの別のページに、列変数ごとに範囲を指定して参照線を追加する@txnelson さん、ありがとうございます。
これは機能しますが、各グループの参照線の位置を手動で指定する代わりに、イベント日付列を呼び出して何らかの方法で参照線の位置を設定できるかどうか疑問に思っています。それは実現可能ですか?Re: グラフ ビルダーの別のページに、列変数ごとに範囲を指定して参照線を追加するデータの例を共有したり、モックアップ データを作成したりできますか? スクリプトに頼らずにこれを実現するには、グラフ ビルダーで少しトリッキーな方法があるかもしれません。
Re: グラフ ビルダーの別のページに、列変数ごとに範囲を指定して参照線を追加するもちろん、参照範囲は他の列の値や JMP プラットフォームの結果に基づいて設定できます。By() の使用に変更することで、ページ列のさまざまなレベルを参照可能にする方法を説明しました。以下は、以前提供した例の簡単な拡張です。各グラフの X 軸列の平均と標準偏差に基づいて参照線の範囲を設定します。

Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// This example sets the range of the reference lines based upon the mean +- 1 std
// of the weight column for each level of the sex column
Summarize( dt, sexGroup = by( :sex ), means = Mean( :weight ), stds = Std Dev( :weight ) );
Eval(
Eval Expr(
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[1] - stds[1] ), Expr( means[1] + stds[1] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[2] - stds[2] ), Expr( means[2] + stds[2] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
)
)
);
JMP のスクリプト言語 (JSL) には、必要なことをほぼすべて実行できる機能があります。JSL を使用して目的を達成する方法についての知識が得られるスクリプト ガイドを時間をかけて読むことをお勧めします。