回复:嵌套/多数据过滤上下文框我想这就是我迷路的地方。 气泡图似乎依赖于所有源图。 你可以生效把你的“最终”图在数据过滤器源框本身,但随后您将看到所有不受欢迎的数据,只是未选中/灰显。
回复:嵌套/多数据过滤上下文框我不能肯定地说是,但是如果您查看我提供的代码的结构,我可以想象能够对其进行扩展以支持您的结构。
我会拿这个样本,看看你是否可以让它在第二级过滤器上分支到两个不同的过滤图。
回复:嵌套/多数据过滤上下文框您可以使用这种方法将不同的子过滤器应用于不同的图吗? 似乎所有地块都会收到相同的过滤器。
我需要一个带有一系列独立(不可见)子过滤器的主过滤器,这些子过滤器应用于不同的绘图集。 我已经用注释掉的“where”过滤器更新了我的原始帖子,以更好地传达这一点。
回复:嵌套/多数据过滤上下文框这是我关于 2 级过滤器的讨论中的一个示例。这是我在上一篇文章中提供的示例的扩展。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :age ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
Data Filter Source Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :sex ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} )
)
)
)
)
),
Platform(
Current Data Table(),
Bubble Plot( X( :weight ), Y( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
)
)
);回复:嵌套/多数据过滤上下文框谢谢吉姆! 除非我误解/忽略了某些东西,否则这只是根据第一个图过滤第二个图。 除了第一个图之外,我如何过滤第二个图?
IE 我希望根据第一个过滤第二个图形,但此外,我只需要第一个过滤器中的数据子集。
实际上我想要的是添加“Where(:ToolID == pTools[j]);”到可变性图表,但如果我这样做,那么它会完全忽略数据过滤源框(或者在我的情况下是本地数据过滤器)。 实际上,我花了很长时间试图弄清楚我在数据过滤器源框中做错了什么,只是在我从可变性图表中删除了上面的“where”行后才意识到它起作用了。
回复:嵌套/多数据过滤上下文框我相信我明白你想要什么。这是一个示例,直接取自 Scripting Index
帮助==>脚本索引==>DataFilterSourceBox
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Selection Filter",
Data Filter Context Box(
H List Box(
dfsb =
Data Filter Source Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :age ) ),
Elements(
Bar( X, Legend( 3 ) )
),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "Filter" )}
)
)
)
),
Platform(
Current Data Table(),
Bubble Plot(
X( :weight ),
Y( :height ),
Sizes( :age ),
Title Position( 0, 0 )
)
)
)
)
);
根据您在一个图表中的“点击”选择,它会过滤另一个图表
嵌套/多个数据过滤器上下文框::edit:: 在代码中添加了注释并包含了一个屏幕截图以帮助可视化。
是否有可能做嵌套的过滤器上下文框或生成有效地做同样事情的东西? 基本上我想要一组适用于报告中所有图的父过滤器。 该图中的报告需要它们自己的特定过滤器来限制它们显示的数据。
我有一个这样的交互式报告:
(1) 一个分为两列的H列表框。
(A) 第一列包含一组过滤器,适用于第二列中的任何内容。
(B) 第二列包含一个选项卡框,其中包含针对不同“工具类型”的多个选项卡。
(i) 每个选项卡包含一个 h 列表框,其中包含给定类型的每个“工具”的变异性图表列。 每列都需要自己的过滤器来限制它显示的“工具”。
(a) 此过滤器基于列表进行硬编码,但 VarCharts 需要根据 (A) 中的过滤器进行更新。
我发现的是,如果我在可变性图表中放置一个 where(),它会忽略 (A) 中的过滤器。 然后我尝试嵌套过滤器上下文框,但这似乎不起作用。 新的过滤器出现了,但实际上只有最父级的过滤器才做任何事情。
我试图创建我的代码的精简/匿名版本,因此可能会有一些拼写错误:
myRootPath = "C:\Log_Testing\";我的日志路径 = 我的根路径;我的报告路径 = 我的根路径 || “报告\”;我的路径=我的根路径|| “日志”; // I tools to plot // 格式:ToolID iTools = {"i1", "i5"}; // 要绘制的 P 工具 // 格式:ToolID pTools = {"p1", "p2"};设置当前目录( mypath ); mainDt = Open( myLogPath || "Log.jmp" );批量交互(1); //批处理模式 dt_name = mainDt << get name(); dt_path = myLogPath; mainDt << 清除选择; filterContextBox = 数据过滤器上下文框(); spcWin = 新窗口( dt_name || "_VarCharts", filterContextBox ); filterBox = H List Box( mainDt << Data Filter( //条件,局部,添加过滤器( columns( :WW,
), Display( :WW, Blocks Display ), Display(
, Blocks Display ), ), Mode( Select( 0 ), Show( 1 ), Include( 1 ) ), ) ); filterContextBox << Append(过滤器框); filterBox << Append( tb = Tab Box() ); tb << Add( "P", hPTab = H 列表框() ); tb << Add( "I", hITab = H List Box() ); numPTools = N 项( pTools ); numITools = N 项( iTools ); //Create P Plots For(j = 1, j <= numPTools, j++, hPTab << Append( vToolBox = V List Box() ); vToolBox << Append( toolTab = Outline Box( pTools[j] ) ); ycol = "VariableName"; parseName = "Variability Chart for " || ycol; toolTab << append( NewChart = Variability Chart( Y( Column( ycol ) ), X( :WW,
), Max Iter( 100 ), Conv Limit( 0.00000001 ), Number Integration Abscissas( 128 ), Number Function Evals( 65536 ), Analysis Type( Name( "Choose best analysis (EMS REML Bayesian)" ) ), Connect Cell Means( 1 ), Std Dev Chart( 0 ), Points Jittered( 0 ), AIAG Labels( 0 ), Automatic Recalc( 1 ),
/*如果下一行没有被注释掉,它会忽略本地过滤器,只使用这个。 我需要两者。 */
其中(:ToolID == pTools [j]); SendToReport( Dispatch( {}, "Variability Gauge", OutlineBox, {Set Title( "" )} ), Dispatch( {parseName}, "2", ScaleBox( 2 ), {Format( "固定十二月", 4, 0 ), Min( 0 )}), Dispatch( {parseName}, "Group Means", StringColBox, {Visibility( "Collapse" )}), Dispatch( {parseName}, "", PlotColBox, {Visibility( "Collapse" ) } ) ) ) ); );
回复:嵌套/多个数据过滤器上下文框我一直在使用代码,但无法让它按照您指定的方式工作。
抱歉,也许其他社区成员有一个想法。
这是一个示例,其中从单个选择图中获取了 2 条独立路径......我认为这接近您想要的
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Potential",
Character,
"Nominal",
Set Values(
{"1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2",
"1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2"}
)
);
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :age ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
//Data Filter Context Box(
V List Box(
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Potential ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
Platform(
Current Data Table(),
Bubble Plot( Y( :weight ), X( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
),
),
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :sex ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
Platform(
Current Data Table(),
Bubble Plot( X( :weight ), Y( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
)
)
)
//)
)
)
)
)
);回复:嵌套/多个数据过滤器上下文框谢谢吉姆! 我想出了类似的东西。 我试图找到一种方法来隐藏/缩小未选择的点,但看起来不可能。
我想我还找到了一种完全不同的方法:使用“by()”并使用单独的 SendToGroup() 循环遍历每个 ToolID。 设置标题有点复杂,但一旦弄清楚我就会发布结果。 希望它能像您所有的帖子一样对将来的人有所帮助!回复:嵌套/多个数据过滤器上下文框我在您所描述的内容中附上了两个类似布局的示例:
SFCrimeNestedFilter.jsl 演示了如何嵌套数据过滤器上下文框以在过滤器中获得级联/分层行为。尽管我用于选项卡框的语法是 JMP 13+,但此方法适用于 JMP 10+。
SFCrimeFilterWithWhere.jsl 将每个报告的内部过滤器替换为Where() 子句。这种类型的布局适用于 JMP 14,但不适用于之前的版本。问题在于过滤器使用完整表,而报告使用子集表。
我希望这有帮助!
回复:嵌套/多个数据过滤器上下文框这似乎正是我正在寻找的! 非常感谢! 所以看来我的错误根本就是使用了源框?回复:嵌套/多个数据过滤器上下文框在 Jim 的示例中,数据过滤器源框正是使用一个 JMP 图形过滤另一个 JMP 图形所需的。我在原始脚本中没有看到数据过滤器源框 - 我认为主要问题是在父表上使用带有过滤器的Where()子句(子集表)。
数据过滤器源框只需要使用平台作为过滤器,因为与内置数据过滤器对象不同,我们无法推断过滤器的行为应该是什么。