如何在 Graph Builder 中更改本地数据过滤条件顺序美好的一天:我会看看我是否可以清楚地说明我的问题。我有一个通过 JMP v 14.1 中的 Graph Builder 创建的图。我添加了一个本地数据过滤器(带有 9 个变量),因此我可以可视化数据的某些子集。我也在本地数据过滤器中选择了“条件”选项。到目前为止,一切都很好。但是,我正在努力了解如何更改条件排序。我看到我可以重新排序过滤器变量列表(拖放),但这对执行条件的排序几乎没有影响。每个本地数据过滤器变量的括号中都有一个数字(例如 [3] )以显示条件顺序。我认为没有办法以任何有目的的方式改变这些。例如,无论它们在列表中如何排序,必须先选择前面有“[4]”的变量,然后选择前面有“[7]”的变量,否则条件不起作用正如它应该。 为了便于使用,我想将变量调节顺序与列出的变量顺序相匹配。我怎样才能做到这一点? 据我所知,脚本中没有任何内容可以更改以影响调节顺序。 而且,我尝试从头开始并按照我想要的条件顺序将变量添加到本地数据过滤器,结果发现条件顺序在此过程中发生了变化……我不知道这是怎么发生的!
谢谢大家
标记
回复:如何在 Graph Builder 中更改本地数据过滤条件顺序我不确定我理解你想要得到什么? 你能进一步解释一下吗?
回复:如何在 Graph Builder 中更改本地数据过滤条件顺序此对话对于了解“条件”数据过滤器设置的行为非常有用:)
是否有可能在不将特定数据过滤器限制到条目的情况下定义“条件”序列?
像这样的东西
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 )
)
)
);
回复:如何在 Graph Builder 中更改本地数据过滤条件顺序谢谢杰夫,现在我知道它是如何工作的了! 现在一切都说得通了。 感谢您和 Martin 的快速和博学的回应;你的洞察力非常有帮助。
标记
回复:如何在 Graph Builder 中更改本地数据过滤条件顺序条件顺序由列的顺序决定用过的在过滤器中,而不是它们的顺序显示. 如果您以交互方式工作,那么这就是您在每列中进行选择的顺序。 如果您正在使用 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 )
)
)
);
回复:如何在 Graph Builder 中更改本地数据过滤条件顺序嗨马丁我*认为*如果您执行以下操作,您可以复制它。
1. 关闭 Conditioning,按照您展示的方式创建本地数据过滤器(按性别/年龄/姓名排序)
2. 然后选择有条件的。
3. 然后从“名称”中选择 ALFRED。
4.然后从“sex”中选择,M(唯一选择)
5.然后从“年龄”中选择,14(唯一选择)
然后你会看到(我认为)[2] 性别,[3] 年龄,[1] 姓名。 它们现在按您选择它们的顺序编号,而不是按列表顺序。然后将性别移动(拖放)到底部。
您将看到 [3] 年龄、[1] 姓名、[2] 性别。 所以,列表顺序改变了......但数字没有。 您最初的选择似乎很重要。 如果发生这种情况,我认为解决它的唯一方法是切换 Conditional 选项(我认为)。
标记
回复:如何在 Graph Builder 中更改本地数据过滤条件顺序嗨,马克,
很高兴您找到了解决方法。 但是,对我来说,顺序会自动更改,所以我不能在最后加上 [1],它会自动将 [1] 更改为 [3]。 您是否想咨询我们的技术支持,看看这是否与“正常”行为不同,或者我只是愚蠢地重现;)
最好的
马丁
回复:如何在 Graph Builder 中更改本地数据过滤条件顺序嗨马丁:我*认为*我找到了解决方案。 而且,如果是这样,它也很容易修复(事实证明)。如果列表顺序和条件顺序不同步,则只需将它们(拖放)放在您希望条件顺序成为的所需列表顺序中,然后关闭条件选项,然后再次打开。 似乎操作重置了条件顺序以匹配列表顺序。
标记
回复:如何在 Graph Builder 中更改本地数据过滤条件顺序嗨马丁:非常感谢,你的回复很有帮助。 准确地说,按照您的步骤,我能够重现您对 Big Class Families 所做的事情。 关键似乎不仅与您描述它的解决方案相关联,而且如果对给定变量进行特定选择,或者是否将给定变量单独留下以便它只是响应,它似乎也会有所不同在通过拖放重新排序之前被动地恢复到以前的条件。例如,使用您的 Big Class Families 数据集,我设法轻松地做到了这一点(见图)。而这种事情正是我试图避免和解决的!而对于 9-11 个变量,这似乎几乎是不可能的......
回复:如何在 Graph Builder 中更改本地数据过滤条件顺序嗨,马克,
只是为了确保我理解正确。 使用带有许多变量的本地数据过滤器不允许您使用条件过滤更改顺序? 您尝试更改顺序但过滤框中的数字保持不变?
嗯,这很有趣。 我正在使用 JMP 14.1。同样,使用 Big Class Families 样本数据来展示我的所作所为。
1.添加本地数据过滤器-设置条件过滤-然后更改设置过滤器的顺序。
Initial local data filter初始本地数据过滤器
Conditional filter with selection to see hierarchy带有选择以查看层次结构的条件过滤器
Changed 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(.. 语句的顺序也会更改条件过滤顺序,或者至少应该:)
请让我们知道这是否对您和我一样适用。
谢谢,
马丁