大家好,
在过去一周左右的时间里,我一直在研究这个想法,并且@gzmorgan0帮我写这篇文章
https://community.jmp.com/t5/Discussions/creating-an-index-for-columns-to-point-to-the-graph/mp/71555#M35439
例如,我循环遍历 5 个连续列和 2 个标称列,我绘制了 10 列的单向分析(比如 nw2)。 我在表格中获取了 p 值和其他参数。 我希望表格按 p 值的升序排序。 我可以在新窗口 (nw1) 中放置我的表格,并且表格中的每一行(因为该行都有与图形相关的适当 X 轴和 Y 轴)应该引用 nw2 中相应的图形吗? 表格框(数据表格列框)是正确的策略还是我应该研究其他一些功能?
我感谢任何意见/意见/建议。
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Big Class.jmp" );
ynames = {"weight", "height"};
xnames = {"sex", "age"};
pnames = {};
nw2 = New Window( "Custom Display", vl = V List Box() );
nw2 << Size Window( 724, 395 );
For( i = 1, i <= N Items( ynames ), i++,
For( j = 1, j <= N Items( xnames ), j++,
Insert Into( pnames, ynames[i] || " by " || xnames[j] );
vl << Append(
Oneway(
Y( Column( dt, ynames[i] ) ),
X( Column( dt, xnames[j] ) ),
Box Plots( 1 ),
Comparison Circles( 0 ),
X Axis Proportional( 0 ),
Means Diamonds( 1 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway",
OutlineBox,
{Set Title( Eval Insert( "^ynames[i]^ ^xnames[j]^ Comparison Report" ) )}
)
)
)
);
); //end for j
); //end for i
plb = List Box( pnames, width( 100 ), maxSelected( 1 ) );
nw1 = New Window( "Filter", plb );
_xx = (nw2 << Child) << xpath( "//OutlineBox[@helpKey='Oneway Report']" );
plb << Set Function(
Function( {this},
k = (this << get Selected Indices)[1];
nw2 << Scroll Window( _xx[k] );
)
);
nw1 << Bring Window to Front;
nw2 << Bring Window to Front;
nw1 << Move Window( 10, 10 );
nw2 << move Window( 180, 10 );
//Add a try in case the window is already closed
nw2 << On close( Try( nw1 << Close Window() ) );是的,我认为单个窗口查看器是最好的,但同样的问题是滚动窗口不适用于嵌套的滚动框。 我已将其报告给 JMP,以便开发人员了解该问题。JMP 支持提供了附加脚本,该脚本演示了如何使用 << Get Offset 更可靠地找到位置。
gzmorgan 似乎已经回答了你的问题,但你私信给我,所以我想详细说明滚动框。附件是对 gzmorgan 使用一个窗口而不是两个窗口的实现的编辑。
滚动框的缺点是无论出于何种原因,它都不支持 << Scroll Window() 命令。
我不是很理解您的问题,您的代码似乎可以满足您的要求。但是,我永远不会让一个窗口影响第二个窗口的结果。我建议您将过滤器图和单向图放在同一个窗口中,并且可以用滚动框将它们分开。