我有一個腳本,它使用雙變量平台來產生離散時間單位的資料圖(例如 2021 年第一週的 202101)。 使用的時間單位是不可協商的,如果被視為連續,則不能正確間隔:202052 和202101 之間的距離將與202101 和202102 之間的距離不同,但這些距離應該相同,因為它們是連續的周。 我的解決方案是建立一個值為1,2,3,... 的「序列」列,並將其與202052, 202101, 202102, .... 配對,並將值標籤套用到「序列」列(1 具有值標籤 202052,2 的值標籤為 202101,3 的值標籤為 202102),然後使用「序列」列作為 Fit Y by X 中的 X。 這個解決方案運作得很好,除了當我記錄輸出時:值標籤不成立,並且日誌中的繪圖恢復為序列列中的原始值,而不是使用值標籤。 每隔一段時間,值標籤就會傳輸到日誌,但在我儲存並重新開啟後,x 軸值已還原為原始值。 我相信差異在於使用腳本或 ctrl + J 來記錄(暫時保留值標籤)與複製 --> 貼上到日記(不保留值標籤)。
我也許可以找到另一種方法來做到這一點,或者也許有人可以建議另一種方法,但我更感興趣的是知道值標籤不會從報表視窗傳輸到日記帳是否是預期的 JMP 行為。 此行為在 JMP 的未來版本中是否會改變?
我使用的是 JMP Pro 14.3.0。 我已確認 JMP Pro 15.2.1 中也出現此問題。 下面是重新建立問題的範例腳本。
// Data Table
dt = New Table( "Label Example",
Add Rows( 6 ),
New Column( "Week", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [202052, 202052, 202101, 202101, 202102, 202102] ) ),
New Column( "Sequence", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 1, 2, 2, 3, 3] ) ),
New Column( "Value", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [12, 39, 9, 1, 22, 9] ) ),
New Column( "Group", Character, "Nominal", Set Values( {"A", "B", "A", "B", "A", "B"} ) )
);
week_list = :Week << get values;
sequence_list = :Sequence << get values;
week_list_names = {};
// Build the Value Labels List
For( i = 1, i <= N Items( week_list ), i++,
If( !Contains( week_list_names, Parse( "\!"" || Char( sequence_list[i] ) || "\!" = \!"" || Char( week_list[i] ) || "\!"" ) ),
Insert Into( week_list_names, Parse( "\!"" || Char( sequence_list[i] ) || "\!" = \!"" || Char( week_list[i] ) || "\!"" ) )
)
);
:Sequence << Data Type( Character );
:Sequence << Value Labels( week_list_names );
:Sequence << Data Type( Numeric ) << Modeling Type( Continuous );
value_by_week = Bivariate(
Y( :Value ),
X( :Sequence ),
Fit Where( :Group == "A", Fit Each Value( {Line Color( {212, 73, 88} )} ) ),
Fit Where( :Group == "B", Fit Each Value( {Line Color( {66, 112, 221} )} ) ),
SendToReport(
Dispatch( {}, "Bivariate Fit of Value By Sequence", OutlineBox, {Set Title( "Bivariate Fit of Value By Sequence" )} ),
Dispatch( {}, "1", ScaleBox, {Inc( 1 ), Minor Ticks( 0 ), Label Row( Show Major Grid( 1 ) ), Label Row( Label Orientation( "Angled" ) )} ),
Dispatch( {}, "2", ScaleBox, {Inc( 10 ), Minor Ticks( 5 ), Label Row( Show Major Grid( 1 ) )} ),
Dispatch( {}, "Sequence", TextEditBox, {Set Text( "Week" )} )
)
);
value_by_week_rep = value_by_week << Report;
my_jrn = New Window( "Test Journal", <<JOURNAL></JOURNAL>您可以選擇從 x 列中提取年份和周值並將其轉換為時間戳記。 然後,如果你把它放在 x 軸上,它會自動正確地間隔,如果你調整 x 軸的格式,你可以讓它顯示你喜歡的日期。
有趣的! 我從來沒有想過嘗試這樣做,但“在新視窗中重新運行”也對我有用。 我很高興該問題在 JMP 16 中得到了解決。 在我開始安裝之前,這是一個可以接受的解決方法。 感謝你的分享。
我在 JMP 15.2 中複製了您的錯誤。它似乎已在 JMP 16 中修復。
你好@drew_baumgartel ,
使用您的範例腳本時我看到了相同的行為。
但是,如果您轉到紅色三角形並選擇在新視窗中重新運行,我就能夠看到值標籤。
Rerun in new windowRerun in new window在新視窗中重新運行
results after rerunning in new windowresults after rerunning in new window在新視窗中重新運行後的結果
乾杯,
史丹