我正在嘗試在圖表上繪製一些曲線。但是對於某些變量,該曲線是不同的。我想知道是否有人有一個好方法可以根據本地數據過濾器中選擇的內容來更改 yfunction() 。例如,如果我將年齡從 12 歲更改為 13 歲,我想要一個餘弦波而不是正弦波或類似的東西。
注意:這是 JMP live 的,所以我不認為過濾器更改處理程序在那里工作。我最初只是在每個變量上單獨繪製一個變量繪圖,但這在 JMP live 上也不起作用,我不知道為什麼。
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt << Graph Builder(
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 43 ) ), Smoother( X, Y, Legend( 44 ) ) ),
Local Data Filter(
Add Filter(
columns( :age ),
Where( :age == 12 ),
Display( :age, N Items( 6 ) )
)
),
SendToReport(
Dispatch(
{},
"height",
ScaleBox,
{Min( 47.4910973084886 ), Max( 78.4293207137927 ), Inc( 5 ),
Minor Ticks( 1 )}
),
Dispatch(
{},
"weight",
ScaleBox,
{Min( 43.4685580652897 ), Max( 152.924994106993 ), Inc( 20 ),
Minor Ticks( 1 )}
),
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script(
5,
Description( "" ),
Pen Color( "red" );
Pen Size( 3 );
Y Function(
49.5348183760347 + 101.831529865667 / 2 * (1
+Sine( (2 * Pi() * (x - 50)) / 16.6 )),
x
);
)}
)
)
);
如果你不關心日記,這個目標很容易。 您可以簡單地在對 Y Function() 的調用中使用用戶函數,並在 Graph Builder 啟動之外定義它。 然後使用帶有數據過濾器的狀態處理程序來定義一個新函數並發送框架框 << Reshow。
如果您需要日記,那麼您不想使用任何變量。 在這種情況下,我將添加一個僅使用文字值的圖形腳本,然後根據過濾器刪除並添加一個新腳本。
玩得開心!
不過,這對 JMP live 不起作用嗎?從我所見,JMP live 真的不喜歡腳本。無論哪種方式,我都會嘗試。
我很確定 JMP Live 不會在服務器上運行任意(可能是任何)用戶腳本。
Quit();
或者
while( 1, 0 );
或者
x = j( 4e9, 1, 0);
或者
wait( 1e6 );
其中任何一個都可能出現在圖形腳本中,從而破壞服務器行為。
JMP Live 的用例圍繞著讓您的觀眾通過您創建的 GUI 使用 JMP 的內置工具對數據進行切片和切塊。
- 鏈接圖表以跨圖表選擇行為
- 使用數據過濾器對數據進行子集化
- 向下鑽取子集(也許...自從我查看 JMP Live 以來已經有很長時間了...實際上上市版本。)