獲取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消息發送給XPath返回的所有結果,而不是使用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 。 這似乎運作良好。 由於某種原因,當我嘗試接受您的答案作為解決方案時出現錯誤,但這就是解決方案。