JSLを使用してグラフィック要素の描画順序を変更する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
グラフィックス要素の描画順序を変更するには、グラフを右クリックして [カスタマイズ] をクリックし、上/下矢印を使用してグラフィックス スクリプトの順序を移動できることを知っています。 JSLを使用してこれを行う方法はありますか? グリッド線と参照線の順序を変更するためにフレームボックスに送信できるメッセージがあります。マーカーにも同様のものがあればと期待していました。 また、フィットラインなどの透明度を変更することもできます。ありがとうございます。
Re: JSLを使用してグラフィック要素の描画順序を変更するJMP 14.2 を使用すると、カスタマイズ グラフ オプションは、「Window」変数と「Frame Box」変数の値を使用して次のような jsl コマンドで機能するため、この例では任意です。
Window(6)[Frame Box( 1 )] << Dispatch( {}, "Oneway Plot", FrameBox, {Grid Line Order( 3 )})
このトリックを実行して、二変量、変動プロット、および等高線プロット プラットフォームのマーカーの上にグリッド線を表示することはできますが、値 3 を超える Oneway プラットフォームでは機能させることができません。 マーカーはデフォルトで 5 番目の位置にあるため、グリッド線の順序をそれ以降にする必要があります。 Grid Line Order( 2 ) または Grid Line Order( 3 ) を使用した上記のコマンドは正常に動作しますが、 Grid Line Order( 4 ) または Grid Line Order( 5 ) を使用すると何も起こりません。 これはバグだと思います。
ポイント アンド クリックしてグリッド ラインの順序を 5 に強制し、スクリプトをスクリプト ウィンドウに保存すると、「Grid Line Order( 5 ), Reference Line Order( 1 )」が表示されますが、スクリプトをそのまま実行すると、スクリプトウィンドウはグリッド線を5番目の位置にさえ配置しません。
のコメントを返信させていただきます@nkelleh : "残念ながら、「マーカー順序」メッセージが、フレーム ボックスの「リファレンス ライン順序」および「グリッド ライン」順序メッセージと一緒に含まれていませんでした。」 JMP では、データ テーブル内の列や行の配置と同様に、「After/Before」や「Last/First」などのオプションを使用できるため、ここでも役立ちます。
Re: JSLを使用してグラフィック要素の描画順序を変更する実際、それもうまくいきます。 なぜそれを試してみようと思わなかったのかわかりません。 乾杯。
Re: JSLを使用してグラフィック要素の描画順序を変更するマーカーセグメントを削除した後、フレームにマーカーセグメントを再度追加してみましたか?
- markerSeg1 = bivFrame << セグメントを検索( マーカー セグメント( 1 ) );
- markerSeg1 << 削除;
- bivFrame << appendseg(markSeg1);
これにより、描画順序が最後になるはずです。削除してもツリーから削除されるだけなので、再度追加しても安全です。
Re: JSLを使用してグラフィック要素の描画順序を変更するああ、念のため聞いておく必要がありました!
回避策をありがとう。リンクしたスレッドが提案したように、既存のマーカーを削除して再描画することで、探していた出力を取得することができました。 データ ポイントの選択という点でプラットフォームの対話性が失われますが、これは純粋にデータの視覚化を目的としていたので、私にとっては問題ありませんでした。
再度、感謝します。
以下は、マーカーを削除して再描画するために再利用したコードの一部です。
//Delete Markers if requiredmarkerSeg1 = bivFrame << Find Seg( Marker Seg(1) );markerSeg1 << Delete;//Script to redraw markers on topbivFrame << Add Graphics Script( For(r=1, r <= NRows(dtMain), r++, y = Column( dtMain, "Voltage" ); x = Column( dtMain, "Temp" ); ms = Combine States( Marker State( Marker Of( Row State( r ) ) ), Color State( Color Of( Row State( r ) ) ) ); Marker(ms, {x, y}); ); );Re: JSLを使用してグラフィック要素の描画順序を変更する申し訳ありませんが、わかりました。
誰かが私の間違いを証明してくれることを期待して、残念ながらあなたには「運がなかった」と言わせてください。 プログラムによる上下矢印の操作と、フィットした線の透明度の両方に関してです。
必ずしも推奨されるわけではありませんが、マーカーを前面に表示したい場合は、次のバリエーションを使用してグラフィックス スクリプトでマーカーを再描画することを検討できます。 https://community.jmp.com/thread/65641
Re: JSLを使用してグラフィック要素の描画順序を変更するこんにちは、イアンさん
有益なヒントをありがとう。 ここでは、他のグラフィックス要素 (この場合はフィット スプライン) を維持したいと考えていますが、マーカーをプロットの前面に持ってきます (多くのライン/マーカーが近接している領域では、スプライン フィットの線がマーカーを隠しています)。 元の投稿で説明されている方法を使用してこれを手動で行うことができますが、これをプログラムで実行する方法があるかどうか疑問に思っています。 残念ながら、「マーカー順序」メッセージは、フレーム ボックスの「リファレンス ライン順序」および「グリッド ライン」順序メッセージとともに含まれていませんでした。
グラフィックス スクリプトを使用して描画されたオブジェクトの透明度を簡単に変更できます。 別の話ですが、たとえば二変量プラットフォームで当てはめられた線の透明度を変更する方法はあるだろうかと疑問に思いました。
あなたのご親切に感謝します。
Re: JSLを使用してグラフィック要素の描画順序を変更する参考までに、次のようなことができます (グリッドと基準線の順序を変更できるので、希望どおりの結果が得られる可能性があります)。
デフォルトの名前はここにあります( 1 ) ;
開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
ビブ=二変量( Y ( :重さ) 、バツ( :身長) 、フィットライン) ;
rbiv =ビブ<<報告;
フレームボックス= rbiv [フレームボックス( 1 )] ;
待って( 1 ) ;
フレームボックス<<
グラフィックススクリプトの追加(
1 、
説明( 「オレンジポリゴン」 ) 、
透明性( 0.5 ) ;
塗りつぶしの色( { 1.0 、 0.5 、 0.0 } ) ;
ポリゴン( [ 60 、 72 、 57 】 、 [ 75 、 120 、 120 】 ) ;
) ;
待って( 1 ) ;
フレームボックス<<
グラフィックススクリプトの追加(
2 、
説明( 「ブルーポリゴン」 ) 、
透明性( 0.5 ) ;
塗りつぶしの色( { 0.0 、 0.5 、 1.0 } ) ;
ポリゴン( [ 60 、 72 、 57 ] 、 [ 150 、 120 、 120 ] ) ;
) ;
待って( 1 ) ;
フレームボックス<<グラフィックススクリプトの削除( 1 ) ;
// 最初のグラフィックス スクリプトを削除すると、2 番目のグラフィックス スクリプトは位置 1 になります (最初は位置 2 に割り当てられていましたが)。 。 。
待って( 1 ) ;
フレームボックス<<グラフィックススクリプトの削除( 1 ) ;
また、以下もご覧ください。 https://www.jmp.com/support/help/Adding_Scripts_to_Graphs.shtml