更新图形生成器的元素语句您好 - 我想将图形生成器的盒须图的样式更改为 JSL 脚本内的点图。 图形生成器最初包含一个 Elements 语句,如下所示:
Elements( Box Plot( Y, Legend( 9 ) ) ),
因此,我想将该语句从 JSL 修改为:
Elements( Points( Y, Legend( 9 ) ) ),
我在脚本索引中找到了 GraphBuilderBox 的 << 添加元素、<< 更新元素和 << 删除元素命令,但我不知道如何应用它们来实现我想要的效果。 索引中给出的示例(添加回归线)与我的情况没有直接关系,但我猜我需要一些东西喜欢以下内容,其中 gb 是我的图形生成器对象:
report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), Y})
但这显然是不对的 - 所以我只需要一个例子来告诉我正确的语法应该是什么。 有人可以帮我解决这个问题吗?
非常感谢。
回复:更新图形生成器的元素语句它可能不优雅,但它有效 - 最终这才是最重要的!
非常感谢。
回复:更新图形生成器的元素语句我明白你现在的问题是什么。 由于您使用的是 X 分组,而不是实际的 X 变量,因此元素的索引不是标准的。 根据文档:
obj << Get Element(xposition, yposition, i )
但是,使用 X 分组,而不是 X,似乎无法使用 (1,1,1) 访问第一个元素, (0,1,1), (.,1,1)或我尝试过的其他任何东西。因此,这就是我的想法:临时定义一个 X 变量,以便您可以访问该元素,然后在进行所需的更改后删除该 X 变量。 我觉得它完全不优雅,但它确实有效。 我将尝试找出在未定义 X 时是否有正确的方法来访问元素,因此您不需要此解决方法。
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables( Y( :height ), Group X( :sex ) ),
Elements( Box Plot( Y, Legend( 10 ) ) )
);
wait( 1 );
gbb = Report( gb )[Graph Builder Box( 1 )];
//define an X temporarily
gbb << Add Variable( {:age, Role( "X" )} );
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});
//remove the X
gbb << Remove Variable( {:age, Role( "X" )} );
回复:更新图形生成器的元素语句嗨朱利安,
我现在更接近理解这个问题了,但不幸的是我还没有完全理解。我的情况和您的示例之间的区别在于,我使用离散分组变量而不是连续 X 变量:脚本的以下变体说明了该问题:
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables( Y( :height ), Group X( :sex ) ),
Elements( Box Plot( Y, Legend( 10 ) ) )
);
wait( 1 );
gbb = Report( gb )[Graph Builder Box( 1 )];
// How do I modify the following two lines to replace the Box Plot above by Points?
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});
如果你能告诉我如何修改最后两行,问题就会解决。
回复:更新图形生成器的元素语句你好@DMR ,
Update Element() 将更改现有元素的属性,但据我所知,不允许您更改元素的类型。 尝试删除现有元素并添加新元素。 下面的例子。
希望这可以帮助!
@朱利安
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Box Plot( X, Y, Legend( 4 ) ) )
);
Wait(1);
gbb = Report( gb )[Graph Builder Box( 1 )];
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});