使用覆盖变量更改图形生成器线宽当我指定了覆盖变量但事先不知道该变量的值可能是什么(或可能有多少个值)时,我希望能够在 Graph Builder 中更改线宽。我根据社区帖子尝试了以下操作:
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 5 ) ) )
);
fbs = gb << XPath("//FrameBox");
For(i = 1, i <= N Items(fbs), i++,
frame = fbs[i];
seg = (frame << Find Seg("Line Seg"));
seg << Set Line Width(1);
);但这只会改变其中一条线的粗细(在本例中为:sex=="F")。
谢谢!
数据探索与可视化回复:使用覆盖变量更改图形生成器线宽Find Segs
如此有用的功能!有任何文档吗?
回复:使用覆盖变量更改图形生成器线宽嗨,马修,
简单的解决方法是将Find Seg更改为Find Segs 。这将找到所有线段(有两个,每个性别一个)并将宽度替换为您需要的宽度。
此外,由于只有 1 个框架框(或 1 个图形),因此我们不需要此处的For循环。我找到了您引用的社区帖子,在该示例中,有两个框架框。
因此我们可以简化您的代码,如下所示:
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 5 ) ) )
);
fbs = gb << XPath("//FrameBox");
seg = (fbs << Find Segs("Line Seg"));
seg << Set Line Width(1);
希望这有帮助!