こんにちは。次のように生成されたスクリプトを使用してグラフ ビルダーを作成しました。
Graph Builder(
Transform Column( "Unit Number", Nominal, Formula( Char( :"Unit S/N"n ) ) ),
Size( 570, 817 ),
Show Legend( 0 ),
Variables( X( :Unit Number ), Y( :Bounding_Circle_Diameter um ) ),
Elements( Box Plot( X, Y, Legend( 6 ) ) ),
Local Data Filter(
Add Filter(
columns( :Aperture Name ),
Where( :Aperture Name == "F_4.8" ),
Display( :Aperture Name, N Items( 3 ), "List Display" )
)
),
SendToReport(
Dispatch(
{},
"Bounding_Circle_Diameter um",
ScaleBox,
{Min( 1500 ), Max( 5000 ), Inc( 500 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Bounding_Circle_Diameter um (F/4.8)" ), Set Font Size( 20 )}
),
Dispatch( {}, "X title", TextEditBox, {Set Font Size( 18 )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Font Size( 18 )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{Reference Line Order( 6 ),
Add Graphics Script(
2,
Description( "" ),
Text( Center Justified, {0, 2150}, "Range: 44.4638" );
Text( Center Justified, {0, 2050}, "Mean: 2288.48" );
Text( Center Justified, {1, 2500}, "Range: 136.315" );
Text( Center Justified, {1, 2400}, "Mean: 2681.81" );
Text( Center Justified, {2, 2100}, "Range: 97.6151" );
Text( Center Justified, {2, 2000}, "Mean: 2278.41" );
)}
)
)
);ただし、テキストと位置はハードコードされた値を使用して手動で作成されました。 見てわかるように、データは特定の列値でフィルタリングされています。 これらのハードコードされた値をそれぞれデータの統計に置き換えることはできますか?
テキストの Y 位置 -> データ サブセットの最小値から
平均 -> データサブセットからの平均値
範囲 -> データサブセットの最大 - 最小
ありがとう
Caption 要素は、フィルターが適用されると統計を自動的に更新でき、統計を配置する場所についてはいくつかのオプションがあります。JMP 17 を使用している場合、オプションの 1 つは、軸の下のテーブルに統計を配置することです。カスタム配置を保持するには、スクリプト経由で統計を計算して置き換えるための JSL 行状態ハンドラーを実装する必要がある可能性があります。

dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Graph Builder(
Size( 528, 464 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements(
Box Plot( X, Y, Legend( 6 ) ),
Caption Box(
X,
Y,
Legend( 7 ),
Summary Statistic( "Mean" ),
Summary Statistic 2( "Range" ),
Location( "Axis Table" )
)
),
Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "M" ) ) )
);
グラフィック出力をグラフに追加するには、より良い方法があります。以下のスクリプト例を見て、グラフ上のどこに何を表示するかを動的に決定する方法を確認してください。

Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
// Create the graph
gb = Graph Builder(
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
// Access the report output
rgb = gb << report;
// Add a graphics script to the report output
rgb[framebox( 1 )] << add graphics script(
// Find the parametrics of the displayed graph
xMaxAxis = rgb[AxisBox( 1 )] << get max;
xMinAxis = rgb[AxisBox( 1 )] << get min;
yMaxAxis = rgb[AxisBox( 2 )] << get max;
yMinAxis = rgb[AxisBox( 2 )] << get min;
// Calculate the desired column stats
heightMean = Col Mean( :height );
heightRange = Col Max( :height ) - Col Min( :height );
// Calculate the xy position on the graph to display the text
pos = As List(
Matrix( (xMinAxis + .1 * (xMaxAxis - xMinAxis)) |/ (yMaxAxis - .1 * (yMaxAxis - yMinaxis)) )
);
// Write out the text
Text( Center Justified, pos, "Mean: " || Format( heightMean, "fixed dec", 7, , 2 ) );
// Change the display position for the next line to be displayed
pos[2] = pos[2] - .05 * (yMaxAxis - yMinaxis);
// Write out the new line
Text( Center Justified, pos, "Range: " || Format( heightMean, "fixed dec", 7, , 2 ) );
);
グラフィックス スクリプトの使用に関するいくつかのポイント:
- グラフィックス スクリプトの計算は、画面が更新されるたびに行われます。
- 計算では行状態が使用されないため、フィルターに関する問題が引き続き発生します。
- スクリプトをプラットフォームから保存して後で再実行しても、スクリプトは自己完結型ではないため機能しません。これは、ワークフロー、プロジェクト、ダッシュボード、または JRP ファイルへの保存にも影響します。