最近有几个人分别向我询问关于 JMP Live 报表筛选的问题。具体来说,他们的问题类似于:“JMP Live 中能否使用一个本地数据筛选器来筛选同一个报表中的多个图表或标签页?”答案是肯定的,JMP Live 完全可以做到这一点,所以我决定分享这个技巧,让更多人学习。
简而言之,要让一个本地数据过滤器作用于多个输出,需要用到一种叫做数据过滤器上下文框的功能,而这需要编写一些脚本。JMP 脚本索引(帮助 > 脚本索引 > 数据过滤器上下文框)中已经有一个示例演示了它的工作原理。
Jed_Campbell_0-1778876645258.png
运行此示例后,会弹出一个新窗口,左侧是本地数据筛选器,右侧是气泡图和图表构建器。与本地数据筛选器交互会同时改变窗口中的其他两项。
例如 jsl.gif
当此窗口上传到 JMP Live 时,会发生相同的筛选行为:
JMP Live 示例 jsl.gif
要将多图界面改为选项卡式界面,需要对脚本稍作修改。在下面的脚本中,我添加了一个选项卡框(),将其包围在气泡图和图表构建器周围。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
dt << Data Filter( Local, Add Filter( columns( :sex ), Where( :sex == "F" ) ) ),
Tab Box( // <-- added tab box here
"Bubble", // <-- each tab needs a title
dt << Bubble Plot(
X( :weight ),
Y( :height ),
Fit To Window( "On" ),
Sizes( :age ),
Title Position( 0, 0 )
),
"Graph", // <-- each tab needs a title
dt << Graph Builder(
Size( 525, 456 ),
Show Control Panel( 0 ),
Fit To Window( "On" ),
Variables( X( :weight ), Y( :age ) ),
Elements( Box Plot( X, Y, Legend( 4 ) ) ),
)
)
)
)
);
运行此脚本会生成一个选项卡式界面,其中本地数据过滤器会同时影响两个选项卡。
标签框示例 jsl.gif
将此文件上传到 JMP Live 后,会显示相同的选项卡式界面,以及相同的数据筛选行为。
JMP Live 标签框示例 jsl.gif
这个技巧在仪表盘和其他工具中非常有用,因为如果使用了多个本地数据筛选器,用户可能需要进行多次类似的选择。我很想听听你发现这个技巧的实用案例。