我正在嘗試在圖表上繪製一些曲線。但是對於某些變量,該曲線是不同的。我想知道是否有人有一個好方法可以根據本地數據過濾器中選擇的內容來更改 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 真的不喜歡腳本。無論哪種方式,我都會嘗試。
克雷格是正確的。目前我們不支援執行任意 JSL 腳本。
判斷 JMP Live 是否支援您創建的內容的一種方法是發佈到 JMP Live,然後下載從 JMP Live 的詳細資訊面板捕獲的腳本。如果您使用運行該腳本所需的表(您也可以下載這些表!)來運行此腳本,那麼您在 JMP 中看到的內容就是您在 JMP Live 上更新或重新生成報告時看到的內容。
如果您正在與另一位 JMP 用戶合作,而該用戶將下載您的內容以在 JMP 中進一步探索,那麼這樣做也會有所幫助。
我希望這有幫助,
〜約翰