SendToReport 功能的圖形建構器內的 If 語句你好,
我希望只有當 Y 軸是某個列(例如錯誤)時才能更改圖表的 Y 軸。 但看起來 graphbuilder 無法辨識其中的 if 。 但是,當我不使用 if 語句時,這運作得很好。 但我希望能夠對各種圖形使用相同的圖形函數。
graph_func = function({stackdt,title},{Default Local},
gb = Graph Builder(
Size( 1342, 905 ),
Variables(
X( :names ),
Y( as column(title) ),
Group X( :Type ),
Overlay( :GROUPs )
),
Elements( Box Plot( X, Y, Legend( 11 ) ) ),
Local Data Filter(
Add Filter(
columns( :Type),
Display( :Type, Size( 160, 30 ), List Display )
) ),
if(contains(title,"error"),
SendToReport(
Dispatch(
{},
title,
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 10 ), Min( 0.00001 ), Max( 0.03 ),
Inc( 1 ), Minor Ticks( 1 )}
)
) , ) );
return(gb);
);回覆:SendToReport 功能的圖形產生器中的 If 語句
由於公司的隱私權政策,無法真正提供 JSL 或整個圖表,但 X 軸如下所示。 Group Y 軸上有 3 組,Y 軸上有誤差。 我希望能夠看到 y 軸上的所有中間點,而不僅僅是最小值和最大值。
另外,當我根據頁面拆分不同的群組時,這只適用於第一個圖表,而不適用於後續圖表。
回覆:SendToReport 功能的圖形產生器中的 If 語句您能否提供您的 JSL 和顯示輸出的影像。
回覆:SendToReport 功能的圖形產生器中的 If 語句感謝回覆。 我嘗試了第二個解決方案,因為這對我正在做的事情來說看起來很簡單。 它可以工作,但 Y 軸現在只有 2 個點,即最小值和最大值。 如何讓它在 Y 軸上顯示比例?回覆:SendToReport 功能的圖形產生器中的 If 語句一種更簡單的方法是將訊息傳遞給圖形產生器所建立的顯示物件。產生圖表後即可傳遞訊息。所有這些訊息都記錄在腳本索引中
幫助==>腳本索引
然後尋找AxisBox對象
這是對您的程式碼的修改,應該可以工作
graph_func = Function( {stackdt, title},
{Default Local},
gb = Graph Builder(
Size( 1342, 905 ),
Variables( X( :names ), Y( As Column( title ) ), Group X( :Type ), Overlay( :GROUPs ) ),
Elements( Box Plot( X, Y, Legend( 11 ) ) ),
Local Data Filter( Add Filter( columns( :Type ), Display( :Type, Size( 160, 30 ), List Display ) ) )
);
If( Contains( title, "error" ),
report(gb)[AxisBox(2)] << min(0.00001) << Max( 0.03 ) << Inc( 1 ) <<MINOR ticks=""></MINOR>回覆:SendToReport 功能的圖形產生器中的 If 語句正如我在其他討論中提到的,Send To Report() 旨在讓 JMP 能夠為您保存腳本並捕獲您可能已完成的任何自訂。 當您編寫腳本時,有更好的方法來自訂視窗。 例如,
gb = dt << Graph Builder( /* usual plot arguments */ );
If( error plot,
Report( gb )[AxisBox(1)] << Min( 0 ) << Max( 10 ) << Inc( 1 );
);
我將使用預設自訂啟動圖形生成器(不是為了繪製錯誤)。 我將有一種方法來標記異常(繪製錯誤)並使用 If() 函數來確定是否應將訊息傳送到物件。 在上面的範例中,錯誤圖參數可以是一個標誌(布林變數),也可以是繪製錯誤時傳回 true 的表達式。 在本例中,訊息被傳送到垂直軸以更改比例。 您可以使用此圖示建立您喜歡的任何自訂。