获取graphbuilder图中的框框数量?你好 我想知道是否有一种很好的方法来获取graphbuilder图中的框数。 我有一个包含104 FB的GB图(8个X组,13个Y组)。 我编写了一个脚本来更改每个FB的标记大小。
Summarize(dtstack, frame_lis = By(:Freq, :Image, :Region));
For(i=1, i<=NItems(frame_lis[1]), i++,
Try(
Report(gb) << Dispatch({}, "Graph Builder", FrameBox(i),
{Marker Size(1)}
)
)
);(归功于@多发性硬化症在https://community.jmp.com/t5/Discussions/Can-t-change-all-marker-size-in-Graph-Builder-by-script/mp/3928 )。 但就我而言,Summarize语句高估了FB的数量,因为我排除了表中包含Region,Image或Freq某些值的几行。 该脚本可以工作,但是一旦计数器i超过GB图中FB的实际数量,我就会在日志中收到错误消息(“在{}”处找不到FrameBox [“ Graph Builder”])。 “尝试”语句试图防止出现错误消息,但是没有用。 无论如何,我宁愿仅通过计算正确的框架框数量来避免这种情况。 谁有想法?
图形脚本编写回复:获取graphbuilder图中的框框数量?为了直接回答您的问题,您可以计算XPath查询返回的项目,但是更好的解决方案是仅将Marker Size消息发送给所有结果,而不是使用Dispatch。
Names Default To Here( 1 );
dt = Open( "$sample_data\Big Class.jmp" );
gb = Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Group Y( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ) ),
);
//Count Frame boxes here
N Items( (gb << XPath( "//FrameBox" )) );
//Or just update them all
(gb << XPath( "//FrameBox" )) << Marker Size( 8 );
回复:获取graphbuilder图中的框框数量?谢谢@ih 。 这似乎运作良好。 由于某种原因,当我尝试接受您的答案作为解决方案时出现错误,但这就是解决方案。