如何更改图形生成器中的本地数据过滤器条件顺序美好的一天:我看看是否能清楚地陈述我的问题。我在 JMP v 14.1 中通过图形生成器创建了一个绘图。我添加了一个本地数据过滤器(带有 9 个变量),以便我可以可视化数据的某些子集。我还在本地数据过滤器中选择了“条件”选项。到目前为止,一切都很好。但是,我正在努力了解如何更改条件排序。我发现我可以重新排序过滤器变量列表(拖放),但这对调节执行方式的顺序几乎没有影响。每个本地数据过滤器变量后面的括号中都有一个数字(例如, [3] )以显示调节顺序。我认为没有办法以任何有目的的方式改变这些。例如,无论它们在列表中如何排序,前面带有“[4]”的变量必须先于前面带有“[7]”的变量选择,否则调节不起作用正如它应该。 为了便于使用,我想将变量调节顺序与列出的变量顺序相匹配。我怎样才能做到这一点? 据我所知,脚本中没有任何内容可以更改以影响调节顺序。 而且,我尝试从头开始,按照我想要的调节顺序将变量添加到本地数据过滤器,却发现调节顺序在此过程中的某个地方发生了变化……而且我不知道这是如何发生的!
谢谢大家
标记
回复:如何更改图形生成器中的本地数据过滤器条件顺序如果将 :sex 替换为 :label 列,则更有意义。
想法:
预定义条件数据过滤器的顺序(使用 :label 作为预选并让它确定哪些条目显示在 :name 过滤器中;就像仪表板中的分层过滤器一样),
无需在本地数据过滤器中选择任何内容:

解决方法:设置一些过滤器并清除选择
查看更多... 根据以下输入对第一个版本进行改编:
https://community.jmp.com/t5/Discussions/Ho-to-send-messages-to-a-local-data-filter-inside-a-graph/mp/554829/highlight/true#M76940
回复:如何更改图形生成器中的本地数据过滤器条件顺序我不确定我是否明白你想要得到什么? 你能进一步解释一下吗?
回复:如何更改图形生成器中的本地数据过滤器条件顺序此对话对于理解“条件”数据过滤器设置的行为非常有用:)
是否有可能定义“条件”序列而不将特定数据过滤器限制为条目?
像这样的东西
Graph Builder(
Size( 535, 638 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 31 ) ), Smoother( X, Y, Legend( 32 ) ) ),
Local Data Filter(
Conditional,
Add Filter(
columns( :sex, :age, :name ),
Where( :sex == <EM><STRONG>ANYTHING</STRONG></EM>),
Where( :age == 14 ),
Where( :name == "ALFRED" ),
Display( :age, Size( 202, 114 ), List Display ),
Display( :name, Size( 202, 285 ), List Display )
)
)
);
回复:如何更改图形生成器中的本地数据过滤器条件顺序谢谢杰夫,现在我明白它是如何工作的了! 现在一切都说得通了。 感谢您和马丁的快速而博学的回应;你的见解非常有帮助。
标记
回复:如何更改图形生成器中的本地数据过滤器条件顺序条件顺序由列的顺序决定用过的在过滤器中,而不是它们的顺序显示的。 如果您以交互方式工作,则这就是您在每列中进行选择的顺序。 如果您使用 JSL,则这是它们在脚本中出现的顺序。
交互式地,将所有列添加到过滤器并打开“条件”选项后,您选择的第一列将标有 [1],其他列将仅显示该选择中的值。 您选择的下一列将标记为 [2],依此类推。 您可以通过单击数据过滤器顶部的“清除”按钮来重置顺序,然后再次开始选择。

如果您使用 JSL 执行此操作,则这就是它们在Where() 子句中出现的顺序。
dt = Open( "$SAMPLE_DATA\Car Physical Data.jmp" );
dt << Graph Builder(
Size( 527, 575 ),
Show Control Panel( 0 ),
Variables( X( :Horsepower ), Y( :Gas Tank Size ) ),
Elements( Points( X, Y, Legend( 86 ) ), Smoother( X, Y, Legend( 87 ) ) ),
Local Data Filter(
Conditional,
Add Filter(
columns( :Model, :Country, :Type ),
Where( :Type == "Small" ),
Where( :Country == "Japan" ),
Display( :Model, Size( 170, 240 ), List Display ),
Display( :Type, Size( 170, 80 ), List Display )
)
)
);
dt << Graph Builder(
Size( 527, 575 ),
Show Control Panel( 0 ),
Variables( X( :Horsepower ), Y( :Gas Tank Size ) ),
Elements( Points( X, Y, Legend( 92 ) ), Smoother( X, Y, Legend( 93 ) ) ),
Local Data Filter(
Conditional,
Add Filter(
columns( :Model, :Country, :Type ),
Where( :Country == "Japan" ),
Where( :Model == "Dodge Colt" ),
Where( :Type == "Small" ),
Display( :Model, Size( 170, 240 ), List Display ),
Display( :Type, Size( 170, 80 ), List Display )
)
)
);
回复:如何更改图形生成器中的本地数据过滤器条件顺序嗨,马丁,我*认为*如果您执行以下操作,您可以重现它。
1. 关闭调节后,按照您向我展示的方式创建本地数据过滤器(按性别/年龄/姓名排序)
2. 然后选择条件。
3. 然后从“名称”中选择 ALFRED。
4.然后从“性别”中选择,M(唯一选择)
5.然后从“年龄”中选择,14(唯一选择)
然后你会看到(我认为)[2]性别,[3]年龄,[1]姓名。 它们现在按照您选择的顺序编号,而不是按照列表顺序。然后将性别移动(拖放)到底部。
您将看到 [3] 年龄、[1] 姓名、[2] 性别。 因此,列表顺序发生了变化……但数字没有变化。 您最初的选择似乎很重要。 如果发生这种情况,我认为解决此问题的唯一方法是切换“条件”选项(我认为)。
标记
回复:如何更改图形生成器中的本地数据过滤器条件顺序嗨马克,
很高兴您找到了解决方法。 但是,对我来说,顺序只会自动更改,所以我不能在末尾添加 [1],它会自动将 [1] 更改为 [3]。 您是否想咨询我们的技术支持,看看这是否与“正常”行为不同,或者我只是愚蠢地重现;)
最好的
马丁
回复:如何更改图形生成器中的本地数据过滤器条件顺序嗨,马丁:我*认为*我已经找到了解决方案。 而且,如果是这样的话,修复起来也很容易(事实证明)。如果列表顺序和条件顺序不同步,则只需将它们放入(拖放)您想要条件顺序的所需列表顺序中,然后关闭“条件”选项,然后再次打开。 看来操作会重置条件顺序以匹配列表顺序。
标记
回复:如何更改图形生成器中的本地数据过滤器条件顺序马丁您好:非常感谢,您的回复非常有帮助。 完全按照您的步骤,我能够重现您对大家庭所做的事情。 关键似乎不仅与您描述的解决方案相关,而且如果对给定变量进行特定选择,或者是否单独留下给定变量以便它做出响应,它似乎也会产生影响在通过拖放重新排序之前被动地恢复到先前的条件。例如,使用您的 Big Class Families 数据集,我已经成功轻松地做到了这一点(见图)。而这种事情正是我想要避免和解决的!对于 9-11 变量,这似乎几乎是不可能的......
回复:如何更改图形生成器中的本地数据过滤器条件顺序嗨马克,
只是为了确保我理解正确。 使用具有多个变量的本地数据过滤器不允许您使用条件过滤更改顺序? 您尝试更改顺序,但过滤框中的数字保持不变?
嗯,这很有趣。 我正在使用 JMP 14.1。同样,使用大家庭样本数据来展示我所做的事情。
1.添加本地数据过滤器-设置条件过滤-然后更改设置过滤器的顺序。
Initial local data filterInitial local data filter初始本地数据过滤器
Conditional filter with selection to see hierarchyConditional filter with selection to see hierarchy带选择的条件过滤器以查看层次结构
Changed ordering per drag and dropChanged ordering per drag and drop更改了每次拖放的顺序
您可以看到条件过滤器的更改,因为我相信您也在期待它。
第二个选项是按照您希望变量出现的顺序创建本地数据过滤器,然后设置条件过滤。
那么从你所说的来看,这对你来说不起作用,对吗? 或者我错过了什么?
另一种选择是将脚本保存到脚本窗口中。 你会得到这样的东西:
Graph Builder(
Size( 535, 638 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 31 ) ), Smoother( X, Y, Legend( 32 ) ) ),
Local Data Filter(
Conditional,
Add Filter(
columns( :sex, :age, :name ),
Where( :sex == "M" ),
Where( :age == 14 ),
Where( :name == "ALFRED" ),
Display( :age, Size( 202, 114 ), List Display ),
Display( :name, Size( 202, 285 ), List Display )
)
)
);
更改Where(..语句的顺序也会更改条件过滤顺序,或者至少应该:)
请告诉我们这是否对您和我一样有效。
谢谢,
马丁