我有一个脚本使用双变量平台生成离散时间单位上的数据图(例如2021年第一周的202101)。 所使用的时间单位不可协商,并且如果被视为连续的话,也无法正确间隔:202052和202101之间的距离将与202101和202102之间的距离不同,但是这些距离应与连续两周相同。 我的解决方案是创建一个具有值1,2,3,...的“序列”列,并将其与202052、202101、202102 ...配对,然后将值标签应用于“序列”列(1具有值标签202052、2具有值标签202101、3具有值标签202102),然后使用“序列”列作为X拟合Y中的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>我在JMP 15.2中复制了您的错误。它似乎已在JMP 16中修复。
有趣的! 我从来没有想过尝试这种方法,但是“在新窗口中重新运行”对我也适用。 我很高兴在JMP 16中解决了该问题。 在我开始安装它之前,这是一个可以接受的解决方法。 谢谢你的分享。