在圖形產生器的單獨頁面上新增參考線 - 允許範圍,按列變數我有幾列數字數據,以及一個數字連續日期時間列,精確到秒。我可以按時間序列中的日期時間繪製其中任何或所有這些內容以同時查看。在圖形產生器中有一個「群組」字元標稱列,我可以使用它來按頁面分隔分析。
還有另一個數字連續日期列“事件日期”,它是與每個“組”值相符的最近一天(從另一個表連接)。對於給定的“組”變量,將有一個唯一的“事件日期”值。我想自動或編寫腳本將參考線從“事件日期”列添加到 x 軸,但是使用“允許範圍”,將最小值設置為上午 12:00:00 的事件日期,將最大值設置為事件日期為晚上11:59:59,基於「組」列變量,目的是每個「組」將出現在單獨的頁面上。以下是一個頁面上的範例,以及圖形產生器中軸設定中的典型參考線對話方塊以供參考:


基礎資料分析與建模數據探索和視覺化回覆:在圖形產生器的單獨頁面上新增參考線-允許範圍,按列變量如果您選擇使用對話方塊來設定圖形產生器

您可以使用 By() 列,而不是將其指定為 Page 列。執行此操作時,每個顯示的圖形產生器顯示輸出都可以具有單獨的範圍參考線

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
)}
)
)
)
);回覆:在圖形產生器的單獨頁面上新增參考線-允許範圍,按列變量謝謝@txnelson 。
這可以工作,但我想知道是否可以調用“事件日期”列以某種方式設置參考線位置,而不是手動指定每個“按組”參考線的位置。這可以實現嗎?回覆:在圖形產生器的單獨頁面上新增參考線-允許範圍,按列變量您可以分享您的資料範例/建立模型資料嗎?圖形產生器中可能有一些比較棘手的方法可以在不依賴腳本的情況下實現此目的。
回覆:在圖形產生器的單獨頁面上新增參考線-允許範圍,按列變量當然,可以根據其他欄位中的值或 JMP 平台的結果來設定參考範圍。我只是說明了一種透過更改為 By() 的使用來使 Page 列的不同層級可引用的方法。下面是我之前提供的範例的簡單擴充。它根據每個圖表的 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 來完成您想要的任務的知識。