你好,
您知道如何从 JSL 脚本级别获取 GraphBuilderGroupBox“名称”吗? 在附图中,它将是“男性”或“女性”(用红色圆圈标记)。 我的猜测是有一个与 << xpath( "//GraphBuilderGroupBox" )) << Get Window Title 类似的命令。 然而它不起作用。
这是代码:
dt = Open( "$SAMPLE_DATA/Academic Achievement.jmp" );
win = dt << Graph Builder(
Size( 570, 475 ),
Variables( X( :Year4 ), Y( :Year2 ), Group X( :Female ) ),
Elements( Points( X, Y, Legend( 8 ) ), Smoother( X, Y, Legend( 9 ) ) )
);
GroupBoxName = (win << xpath( "//GraphBuilderGroupBox" )) << Get Window Title; //<<CLASS name="" show=""></CLASS>
我在扩展代码中需要它,我将不同表中的 FrameBox 粘贴到 1 GB 上。 只要我不使用本地数据过滤器,框架框就会保持“正确”的位置,否则绘制的数据就会混乱。 我使用 JMP 16.1。
感谢您的建议!
问候,
李

不确定您是否可以从图形生成器访问这些“名称”(分组)。 您可以通过使用 << Get XML on win 变量来检查可以使用 Xpath 访问的内容,并且基于此,没有提及“女性”和“男性”。 另外从“显示树结构”和“显示属性”检查我也看不到它们:

要获取对 GraphBuilderGroupBox 的引用,您可以使用:
gbgb = Report(win)[GraphBuilderGroupBox(1)];
//or
gbgb = (win << XPath("//GraphBuilderGroupBox"))[1]; //it is a list so use index可以使用变量访问 X 组,但我不确定它在这里是否有帮助:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Academic Achievement.jmp");
win = dt << Graph Builder(
Size(570, 475),
Variables(X(:Year4), Y(:Year2), Group X(:Female)),
Elements(Points(X, Y, Legend(8)), Smoother(X, Y, Legend(9)))
);
//win << get xml
gbb = Report(win)[Graph Builder Box(1)];
wait(1);
gbb << Remove Variable(3);
gbb << Add Variable({:Female Binary, Role("Group X")});编辑:
如果您只需要 Female 列的值,您可以直接从数据表中获取它们。 由于这些是值标签,因此您必须获取值标签属性
(Column(dt, "Female") << Get Column Properties())["Value Labels"]