你好,
我有一个使用列切换器的分发平台,其中填充了列表变量中的列。 这些列中的每一列都代表不同的质量参数,因此具有从 SQL 查询收集的不同限制。
有没有一种方法可以在列切换器更改列时动态地将参考线添加到分发平台? 现在,我有一个 SendToReport 在每个项目的循环中运行,但它最终会一次性添加所有列的参考线,而不仅仅是每列所需的两条参考线。
一个简单的方法是,如果列切换器支持“列更改”脚本 - 然后我可以删除以前的引用行并在每次更改时添加新的引用行。 如果支持类似的内容,我找不到任何脚本索引信息。
JMP 版本:14
has_limits = {"item 1", "item 2", "item 3"};
dist = dt << Distribution(
Continuous Distribution( Column( "item 1" ), Horizontal Layout( 1 ), Always use column properties( 1 ), Vertical( 0 ), Outlier Box Plot( 0 ) ),
Column Switcher( "item 1", has_limits )
);
For( n = 1, n <= N Items( has_limits ), n++,
tempUCL = Col Max( Column( dt, has_limits[n] || "_UCL" ) );
tempLCL = Col Max( Column( dt, has_limits[n] || "_LCL" ) );
Eval(
Eval Expr(
dist << SendToReport(
Dispatch(
{Expr( has_limits[n] )},
"1",
ScaleBox,
{Add Ref Line( Expr( tempUCL ), "Dashed", "Medium Dark Red", "UCL", 1 ), Add Ref Line(
Expr( tempLCL ),
"Dashed",
"Medium Dark Red",
"LCL",
1
)}
)
)
)
);
);这是一个可以帮助您部分实现目标的脚本。由于某种原因,它会删除轴值,但如果您可以在数据上尝试它,您也许能够弄清楚如何让它正常工作。该代码是使用 JMP 14 开发的
names default to here(1);
dt = open("$SAMPLE_DATA/blood pressure.jmp");
has_limits = {"bp 8m", "bp 12m", "bp 6m"};
for(i=1,i<=nitems(has_limits),i++,
new column(has_limits[i] || "_UCL", values(matrix(quantile(.75,column(has_limits[i])<<GET values=""></GET>谢谢你。 我还没有弄清楚缺少的轴值,这很奇怪(还显示“正在加载”光标),但它至少是朝着正确方向迈出的一步。
解决方法可能是运行 JSL,然后转到报告输出窗口中的红色三角形,并选择“保存脚本”。将其保存到脚本窗口,然后运行该脚本。我的测试显示 JMP 创建的代码缺少 X Azis 标签。
我已将该错误提交给 JMP 支持。
其他似乎有效的解决方法是添加填充(也许有东西被推到轴盒顶部?)

或从轴设置启用图形框架内的刻度线,尽管这会使图形看起来有点奇怪,我认为您可能还想启用网格线

