大家好,
过去一周左右我一直在研究这个想法@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() 命令,无论出于何种原因。
我不太了解您的问题,您的代码似乎符合您的要求。但是,我永远不会有一个窗口影响第二个窗口的结果。我建议您将过滤器和单向图都放在同一个窗口中,并且可以使用滚动框将它们分开。