当我像这样从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]希望为每个循环获取一个单独的图形,但这会产生错误。 -在访问或评估``分配''时不具有下标价值
不知道为什么-我希望默认操作是创建单独的窗口;如以下脚本所示:
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]) ) )
);
)
如果我误解了“窗口”的含义,而您真正想要的是在一个窗口中包含大量图形,则需要将图形放入容器中(以防止立即显示该图形),然后将其附加到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)
);谢谢大卫,
这实际上正是我在做的,但只显示了最后一个。我最终在我未显示的“额外”脚本的一部分中发现了一个错误,一旦修复,它便开始正常工作。因此,您的回答表明我做得对,并指出正确的方向来找到真正的问题。谢谢