色谱柱切换器、本地数据过滤器和参考线自动更新我已经使用图形生成器创建了一个条形图,并希望将本地数据过滤器、列切换器和参考线应用到图表。 是否可以根据选择的列自动切换本地数据过滤器和参考线。 目前,当我在列之间交换时,我刚刚完成的参考线消失了。 我有 2 个可能的列可供选择:Cpk 和 Ppk。 我想在 Cpk = 1.333 和 Ppk = 1.333 处添加参考线,当前分别显示这两条参考线。 同样,我想添加一个本地数据过滤器,以仅显示最小 Cpk/Ppk 值和最大值 1.5 之间的值,具体取决于显示的列。 是否可以通过编写脚本在简单的图形生成器中执行此操作,或者我需要查看仪表板/应用程序? 这就是我目前所拥有的:
Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Feature ID, Order By( :Cpk , Ascending, Order Statistic( "Mean" ) ) ),
Y( :Cpk )
),
Column Switcher( :Cpk , {: Cpk , :Ppk }),
Elements( Bar( X, Y, Legend( 4 ) ) ),
Local Data Filter(
Add Filter( columns( :Cpk ), Where( :Cpk >= floor(Col Min(:Cpk )) & :Cpk <= 1.5 ) )
),
SendToReport(
Dispatch(
{},
"Cpk ",
ScaleBox,
{Add Ref Line( 1.333, "Solid", "Red", "", 3 )}
),
)
);数据探索和可视化回复:列切换器、本地数据过滤器和参考线自动更新好的,谢谢,不用担心!
我正在使用公司软件,所以我认为我无法升级,所以只需要考虑一种不同的方式来显示数据。 我假设如果尝试根据所选列更改轴限制,而不是尝试更新本地数据过滤器,我会遇到类似的问题? 干杯回复:列切换器、本地数据过滤器和参考线自动更新在 JMP 13 中运行脚本的第一个问题是从
ColSwitcher << 获取当前
不是文字字符串,因此必须更改为
char( ColSwitcher << 获取当前值 )
但当这样做时,JMP 就会进入无限循环
我相信这是一个已知错误,并且与列切换器更改调用添加图形脚本时相关。
我尝试了很多方法,但无法找到解决方案。 我确信升级到 15 是解决此问题的唯一选择。回复:列切换器、本地数据过滤器和参考线自动更新你好,
当我将其复制到脚本中时,它似乎无法正常工作。 该图表有一条错误消息,指出“图形脚本在日志中报告了错误”。 日志中报告的错误指出“名称未解析:访问或评估 'weight' 时的权重{21},weight/*###*/”。 我正在使用 JMP 13,我不知道这是否是一个问题?
我成功添加了一条参考线,无论 y 轴上显示什么,该参考线都保持在 1.333,如下所示:
obj = dt_sum << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Feature ID, Order By( :Cpk, Ascending, Order Statistic( "Mean" ) ) ),
Y( :Cpk)
),
Column Switcher( :Cpk, {: Cpk, :Ppk}),
Elements( Bar( X, Y, Legend( 4 ) ) ),
);
Report(obj)[FrameBox(1)] <<
Add Graphics Script(
1, Description( "Pen Script"),
Pen Color("red");
Pen Size(3);
Y Function(1.333, Feature ID);
);但是,我仍然不确定如何将列切换器与本地数据过滤器链接起来,以便在切换列时仅显示和更新低于特定 y 值的值。
回复:列切换器、本地数据过滤器和参考线自动更新是的,可以做你想做的事。这是一个简单的例子
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb = dt << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
ColSwitcher = gb << Column switcher( :weight, {:weight, :height} );
Report( gb )[framebox( 1 )] << add graphics script(
theCol = ColSwitcher << Get Current;
If(
theCol == "weight",
Report( gb )[AxisBox( 2 )] << add ref line(
Col Mean( :weight ),
"solid",
red,
"Mean",
2
),
theCol == "height",
Report( gb )[AxisBox( 2 )] << add ref line(
Col Mean( :height ),
"solid",
red,
"Mean",
2
)
);
);