当我从这样的 dt 构建图表时:
gb = Data_Table << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Split ),
X( :Wafer, Position( 1 ) ),
Y( As Column( analysisTests[i] ) ),
Color( :Split )
),
Elements(
Points( X( 1 ), X( 2 ), Y, Legend( 21 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 22 ) )
)
);
效果很好。但是,如果我将其全部放入循环中,希望在各自的窗口中生成一组图形(每个列标签一个),则它只会更新第一个图形:
for(i = 1, i <= N Items(analysisTests), i++,
gb = Data_Table << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Split ),
X( :Wafer, Position( 1 ) ),
Y( As Column( analysisTests[i] ) ),
Color( :Split )
),
Elements(
Points( X( 1 ), X( 2 ), Y, Legend( 21 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 22 ) )
)
);
);如何让它显示一组图表,每个图表都在它自己的窗口中?似乎因为它要求基于数据表的图表,所以我需要多个数据表,每个数据表都有自己的图表,但似乎应该有一种更简单的方法。我尝试了 gb[i] 希望为每个循环获得一个单独的图表,但这给出了一个错误。 -- 访问或评估“分配”时不可下标的值
谢谢大卫,
这实际上正是我正在做的,但它只显示了最后一个。我最终在我没有显示的“额外”脚本的一部分中发现了一个错误,一旦修复它就开始正常工作。所以你的回答告诉我,我做得对,并为我指明了找到真正问题的正确方向。谢谢
如果我误解了“窗口”的含义 - 并且您真正想要的是单个窗口中的大量图形,那么您需要将图形放入容器中(以防止立即渲染),然后将其附加到 pre -现有显示框(本例中为hlb)
dt = open("$SAMPLE_DATA/Big Class.jmp");
cols = dt << get column names;
NewWindow("Demo",
hlb = HListBox()
);
for (i=1,i<=nitems(cols),i++,
content = VListBox(
dt << Graph Builder(
Size( 353, 317 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( eval(cols[i]) ) )
)
);
hlb << append(content)
);不知道为什么 - 我希望默认操作是创建单独的窗口;如这个脚本所示:
dt = open("$SAMPLE_DATA/Big Class.jmp");
cols = dt << get column names;
for (i=1,i<=nitems(cols),i++,
dt << Graph Builder(
Size( 353, 317 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( eval(cols[i]) ) )
);
)