在图形生成器中的单独页面上按列变量添加参考线(允许范围)我有几列数字数据,以及一个精确到秒的数字连续日期时间列。我可以按日期时间绘制时间序列中的任意或全部数据,以便同时查看。在 Graph Builder 中有一个“组”字符名义列,我可以使用它将分析按页面分开。
还有另一个数字连续日期列“事件日期”,它是最近的一天(从另一个表连接),与每个“组”值匹配。对于给定的“组”变量,将有一个唯一的事件日期值。我想自动或编写脚本将参考线从“事件日期”列添加到 x 轴,但是使用“允许范围”,将最小值设置为 12:00:00AM 的事件日期,将最大值设置为 11:59:59 PM 的事件日期,基于“组”列变量,意图每个“组”都放在单独的页面上。下面是它在一页上的样子的示例,以及图形生成器中轴设置中的典型参考线对话框以供参考:


基础数据分析与建模数据探索与可视化回复:在图形生成器中的单独页面上按列变量添加允许范围的参考线如果您选择使用对话框来设置图形生成器

您可以使用 By() 列,而不是将其指定为 Page 列。执行此操作时,每个显示的 Graph Builder 显示输出都可以有单独的范围参考线

names default to here(1);
dt=
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{100, 120},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{140, 160},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
);回复:在图形生成器中的单独页面上按列变量添加允许范围的参考线谢谢@txnelson 。
这可以行得通,但我想知道是否可以调用事件日期列以某种方式设置参考线位置,而不是手动指定每个按组参考线的位置。这可以实现吗?回复:在图形生成器中的单独页面上按列变量添加允许范围的参考线您能分享一个数据示例/创建一个模型数据吗?图形生成器中可能有一些更棘手的方法来实现这一点,而无需依赖脚本。
回复:在图形生成器中的单独页面上按列变量添加允许范围的参考线当然,可以根据其他列中的值或 JMP 平台的结果来设置参考范围。我只是在说明一种通过更改为使用 By() 来使页面列的不同级别可引用的方法。下面是我之前提供的示例的简单扩展。它根据每个图表的 X 轴列的平均值和标准差设置参考线范围

Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// This example sets the range of the reference lines based upon the mean +- 1 std
// of the weight column for each level of the sex column
Summarize( dt, sexGroup = by( :sex ), means = Mean( :weight ), stds = Std Dev( :weight ) );
Eval(
Eval Expr(
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[1] - stds[1] ), Expr( means[1] + stds[1] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[2] - stds[2] ), Expr( means[2] + stds[2] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
)
)
);
JMP 的脚本语言 (JSL) 几乎可以完成您设想需要做的任何事。我建议您花时间阅读脚本指南,它将为您提供有关如何使用 JSL 完成您想要做的事情的知识。