グラフビルダープロットのフレームボックスの数を取得しますか?こんにちは。 グラフビルダープロットのフレームボックスの数を取得する良い方法があるかどうか知りたいのですが。 104 FB(8つのXグループ、13のYグループ)を含むGBプロットがあります。 各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)}
)
)
);(クレジット@MSにhttps://community.jmp.com/t5/Discussions/Can-t-change-all-marker-size-in-Graph-Builder-by-script/mp/3928 )。 しかし、私の場合、Region、Image、またはFreqの特定の値を含むテーブル内のいくつかの行を除外したため、SummarizeステートメントはFBの数を過大評価しています。 このスクリプトは機能しますが、カウンターiがGBプロットの実際のFB数を超えると、ログにエラーメッセージが表示され始めます( "Cannot find FrameBox [" Graph Builder "] at {}")。 「Try」ステートメントはエラーメッセージを防ぐための試みでしたが、機能しませんでした。 とにかく、最初に正しいフレームボックスの数を計算するだけで、これを避けたいと思います。 誰かアイデアはありますか?
グラフィックススクリプティングRe:グラフビルダープロットのフレームボックスの数を取得しますか?質問に直接答えるために、XPathクエリで返されたアイテムを数えることができます。ただし、より良い解決策は、ディスパッチを使用するのではなく、XPathで返されるすべての結果にマーカーサイズメッセージを送信することです。
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 );
Re:グラフビルダープロットのフレームボックスの数を取得しますか?ありがとう@ih 。 それはうまくいったようです。 何らかの理由で、あなたの答えを解決策として受け入れようとするとエラーが発生しますが、これが解決策でした。