你使用偏好設定嗎?透過檔案/首選項,您可以變更 Jmp 的標準設定。
根據您的需求調整 Jmp 非常酷:)
但我發現了一個微妙的問題 - 結合自動生成 JSL 程式碼的功能(保存到腳本、高級日誌、儀表板、日誌、Workflow Builder ...)
下面的程式碼更改了首選項,因此 - 如果您想嘗試,請三思。
故事:
使用者透過檔案/首選項調整一些設定(條件和列切換器保留軸設定)
- 然後使用預設設定產生報告(他已手動執行此操作,沒有機會透過增強日誌產生程式碼):
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Set Preferences(
Data Filter Conditional( 1 ),
Column Switcher Retain Axis Setting( 1 )
);
Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional(0),
Add Filter(
columns( :sex, :name )
)
),
Column Switcher( :weight, {:age, :weight}, Retain Axis Settings( 0 ) )
)然後,他透過 GUI 互動調整報告並保存腳本(使用 JMP 的增強日誌功能)。
產生的腳本將如下所示:
Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :sex, :name ),
Display( :name, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
Column Switcher( :weight, {:age, :weight} )
)請注意:
有條件(0) ->自動刪除!
Retain Axis Settings( 0 ) -> removed automatically!
The finding:
Default settings are automatically removed from the code - "因為它們不會對標準系統產生影響".
如果使用者使用儀表板內的報告(!),也會發生相同的情況 - 不會新增預設設定。
現在,用戶再次運行程式碼 - 想像一下報告會是什麼樣子...
我可以理解為什麼會這樣 - 這不是錯誤,這是一個很酷的功能,Jmp 會自動清理程式碼以刪除不必要的行。
但與敢於更改首選項中的設定的用戶結合起來,它絕對像一個錯誤 - 一個嚴重的錯誤!
我目前的解決方法:只需更改您確信永遠不會(!!!)使用預設設定的首選項。
這條規則很傷人——特別是對於我在 99% 的情況下使用調整後的設定和 1% 的預設設定的情況。
然後,規則不允許我調整偏好。我被迫使用預設設置,並且在 99% 的情況下都必須手動調整設定。
有沒有更好的解決方案—您在日常工作生活中如何解決這個問題?
自動化和腳本編寫回覆:你使用偏好設定嗎?根據 Jmp 支援 (TS-00061254):
這是按設計工作的。
所以:
透過更改首選項中的設置,使用者將失去使用 Dashboard Builder 產生儀表板的機會,該儀表板可以使用標準設置在其係統上開啟平台:(
解決方法:
開啟Dashboard的來源腳本並手動新增標準設定的程式碼。
回覆:你使用偏好設定嗎?Jmp 支援建議為願望清單寫一篇文章。
這裡是:
更改首選項中的設定 -> 修復問題
回覆:你使用偏好設定嗎?@hogi ,我嘗試了你的程式碼,看看你的意思。變更篩選器和列切換器的首選項,然後使用與首選項預設值(不是目前首選項)相符的選項來製作報表。然後,儲存腳本不會費心包含與預設值相符的設置,因此腳本不會重現您的報告。您是否正在解釋(並且支援聲稱?)這是有意清除如果您將系統保留為預設首選項則不需要的任何內容? IE。不包括條件(0),因為如果您有預設首選項,則不需要它,即使它目前是相關的?
但這不是我所看到的圖形生成器本身的偏好。例如,如果我將圖形產生器的首選項變更為不顯示標題,然後我建立圖形產生器並要求(在 JSL 中或事後手動)顯示標題,我確實會得到一個包含 showtitle(1) 的腳本。 Conditional(0) 可以被視為一種冗餘設置,如果您有預設首選項,則不需要這種設定。我認為我通常看到的是它不包含我當前的首選項不需要的設定。現在我關閉了在我的首選項中顯示標題,如果我要求 showtitle(0) 它就不會在腳本中提及這一點。
所以,似乎有兩個問題:(1)一個人可能想捕獲所有選項,無論它們是否符合您的偏好,(2)在我看來,“獲取腳本”類型選項對待過濾器和列切換器的方式與他們對待平台的其餘部分。它無法為您提供一個適合您當前偏好的腳本,就像它針對平台偏好所做的那樣。我可以理解刪除不必要的子句是有意的,但並不是說過濾器的不必要的定義與 settitle() 的不同。?
2.對我來說這似乎是一個錯誤,它消除的東西不是因為與當前首選項相同,而是因為與預設值相同。
1. 似乎它確實與我關於使用千位分隔符號的願望清單項目類似( 使用 JSL 詢問使用千位分隔符號 - JMP 用戶社區),其中也許一種解決方案可以是返回更詳細腳本的選項,而不是傳回更詳細的腳本不要僅僅因為「與偏好相同」而消除任何內容。
太好了,現在我的偏好都搞砸了......:)
回覆:你使用偏好設定嗎?100%同意:)
尤其是
-我可以理解刪除不必要的條款是有意的
- 但這並不是說過濾器的不必要定義與 settitle() 的定義不同。?
還有許多其他設定的行為類似於列切換器和資料過濾器 - 甚至是直接影響圖形產生器的設定:
如果您在首選項中更改摘要統計、圖形間距等的預設設置,則所有自動產生的 JSL 程式碼都將包含以下部分:
統計匯總(“中位數”),
圖形間距( 4 )
....直到您嘗試將其設定回預設值。如果您使用預設設置,這些設定將不會顯示在生成的 JSL 腳本中 - 存在類似「條件」的問題:沒有機會使用預設設定自動產生 JSL 程式碼。
回覆:你使用偏好設定嗎?由於之間有如此大的空間
- 刪除「不必要」的條款
- 寫入所有設置,以便結果在任何系統上都相同 - 與當前設定無關。
那麼,詳細(0),詳細(0.3),詳細(0.5),詳細(0.7),詳細(1)怎麼樣
- 0:像現在一樣刪除所有「不必要」的程式碼 - 相容模式
- 0.3:產生在此系統上產生相同結果所需的所有 JSL 程式碼。 [修復條件問題]
- 0.5:產生在預設系統上產生相同結果所需的所有 JSL 程式碼。 [修正了使用者定義的漸層設定的問題]
- 0.7:基於過去 6 個月產生的圖表/報告,包括更改 >=3 次的所有設定。產生針對所有設定都具有穩健性的程式碼。
- 1:JSL 程式碼對於首選項中的任何設定都具有穩健性。
0.7:超級有用-我的最愛!
- 誰會在乎額外的 5 行程式碼 - 如果它們會在您同事的任何系統上產生更可靠的結果。
- 您多久產生一個連接,然後想知道追加到主表(1)的確切措辭?
回覆:您會使用偏好設定嗎?一位同事發現了一個很好的例子,展示了由圖形產生器中不同設定衝突引起的類似錯誤:
如果上級應用了非標準設置,則使用者不得將某個設定定義為標準設定。
在圖形產生器中,有一個用於控制座標軸設定的控制項-在座標軸設定中,還有一個用於控制參考線的控制項。
參考線似乎繼承了座標軸設定的字體設定。
刪除繼承設定的唯一方法是:套用非標準設置,從而覆蓋繼承的設定。
難以解釋,但很容易「體驗」:
標籤“standard”的文字應該是“standard”,而不是粗體——運行程式碼試試看:

dt = new table("test", new column ("X"));
Graph Builder(
Size( 469, 260 ),
Graph Spacing( 4 ),
Variables( X( :X ) ),
Elements( Points( X, Legend( 2 ) ) ),
SendToReport(
Dispatch( {}, {:X}, ScaleBox,
{Min( 0 ), Max( 50 ), Inc( 10 ), Minor Ticks( 1 ),
Add Ref Line(
20,
"Solid",
"Black",
"italic",
1,
1,
Label Settings( {Set Font Style( "Italic" )} )
), Add Ref Line( 30, "Solid", "Black", "standard", 1 ),
Label Row( Set Font Style( "Bold" ) )}
)
)
);
類似的問題也出現在首選項和自訂設定中。一旦首選項中的某個設定與標準設定不同,使用者就必須使用首選項中的設定。幾乎不可能強制報表使用標準設置,尤其是在報表被修改並保存腳本之後。這時,「重置為標準設定」的功能就失效了。
參考線的情況更糟:完全沒有機會重置設定?
回覆:您會使用偏好設定嗎?圖表建構器中的標記和顏色設定也存在類似的衝突:
調整標記設定的方法有很多種:
- 各行的行狀態
- 在圖表建構器中,透過圖例選單設定標記
- 首選項選單中的全域標記設置
JMP 19 目前無法透過列屬性「值標記」來控制標記設定 -> 請點擊連結投票!
問題如下:
透過圖例選單進行的設定會覆蓋行狀態中的設定。
預設標記是個例外。如果在圖例選單中選擇了標準標記,JMP 會假定使用者想要“重置”設置,因此該命令將被“忽略”,行狀態中的標記設定將再次生效。唯一能夠「對抗」行狀態的方法是指定一個特殊的標記。無法使用“預設標記”覆蓋行狀態。
Similarly, settings via the legend menu override the settings in the 偏好.
The exception is again the default marker. If the setting is switched to the standard marker, JMP assumes that the user wants to 'reset' the settings, so the preferences will be activated again. Consequently, one must assign a 非標準標記 to override the settings in the preferences. It is not possible to overrule marker settings from the preferences with a 'default marker': In the vide, the user selects "dot" - and Graph Builder uses "FilledSquare" (from the preferences).
My recommendation: don't touch the marker setting in the preferences!!
顏色也是如此:
無法將行狀態顏色替換為黑色(預設顏色)。
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 10 ), Marker Drawing Mode( "Outlined" )} ),
Dispatch( {}, "400", LegendBox, {Legend Position( {1, [2, 3], 2, [0, 1]} )} )
)
);
wait(2);
// Set selected rows' markers
dt << Clear Select << Select Rows( [5] ) << Markers( "Circle" );
wait(2);
// please go to the preferences and set it back after running this code:
Set Preferences( Graph Marker( "FilledSquare" ));