使用 JSL 更改圖形元素的繪製順序<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我知道您可以通過右鍵單擊圖形,然後單擊“自定義”,然後使用向上/向下箭頭移動圖形腳本的順序來更改圖形元素的繪製順序。 有沒有辦法使用 JSL 來做到這一點? 您可以向 Framebox 發送一些消息來更改網格線和參考線的順序,我希望標記會有類似的內容。 您還可以更改擬合線等內容的透明度嗎?謝謝!
回复:使用 JSL 更改圖形元素的繪製順序使用 JMP 14.2,自定義圖形選項可與如下所示的 jsl 命令配合使用,並使用“Window”和“Frame Box”變量的值,因此對於本示例來說是任意的:
Window(6)[Frame Box( 1 )] << Dispatch( {}, "Oneway Plot", FrameBox, {Grid Line Order( 3 )})
我可以通過這個技巧讓網格線出現在雙變量、變異圖和等高線圖平台的標記頂部,但我無法讓它在值超過 3 的 Oneway 平台上工作。 默認情況下,標記位於第五個位置,因此我需要將網格線順序放在第五個位置之後。 雖然上述命令使用網格線順序(2)或網格線順序(3)工作正常,但當我使用網格線順序(4)或網格線順序(5)時沒有任何反應。 我相信這是一個錯誤。
如果我點擊並強製網格線順序為 5,然後將腳本保存到腳本窗口,我會得到“網格線順序(5),參考線順序(1)”,但按原樣運行腳本腳本窗口甚至沒有將網格線放在第五個位置。
我會回應評論@nkelleh :“不幸的是,“標記順序”消息未與框架框的“參考線順序”和“網格線”順序消息一起包含在內。” JMP 允許使用“之後/之前”或“最後/第一個”等選項,就像在數據表中排列列或行一樣,在這裡也會很有幫助。
回复:使用 JSL 更改圖形元素的繪製順序事實上,這也有效。 不知道為什麼我沒有想到嘗試一下。 乾杯。
回复:使用 JSL 更改圖形元素的繪製順序您是否嘗試過在刪除標記後將其附加回框架?
- markerSeg1 = bivFrame << 查找 Seg( 標記 Seg( 1 ) );
- 標記段1 << 刪除;
- bivFrame <
這應該使它在抽籤順序中排在最後。刪除它只是將其從樹中刪除,因此添加回來應該是安全的。
回复:使用 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}); ); );回复:使用 JSL 更改圖形元素的繪製順序抱歉 - 現在我明白了。
希望有人能證明我的錯誤,不幸的是,我會說你“運氣不好”。 無論是在以編程方式調整向上/向下箭頭方面,還是在擬合線的透明度方面。
不一定推薦,但如果您想將標記放在前面,您可以考慮使用圖形腳本使用以下變體重新繪製它們: https://community.jmp.com/thread/65641
回复:使用 JSL 更改圖形元素的繪製順序嗨伊恩,
再次感謝,有用的提示。 在這裡,我想保留其他圖形元素,在本例中是擬合樣條線,但將標記放在繪圖的前面(樣條線擬合的線條遮蓋了許多線條/標記靠近的區域中的標記。 我可以使用原始帖子中描述的方法手動執行此操作,只是想知道是否有任何方法可以以編程方式執行此操作。 不幸的是,“標記順序”消息未與框架框的“參考線順序”和“網格線”順序消息一起包含在內。
可以輕鬆更改使用圖形腳本繪製的對象的透明度。 另一方面,我想知道是否有任何方法可以改變雙變量平台中擬合線的透明度。
再次感謝你的幫助。
回复:使用 JSL 更改圖形元素的繪製順序僅供參考,您可以做這種事情(因此,通過更改網格和參考線的順序,您也許能夠得到您想要的東西):
名稱默認為此處( 1 ) ;
打開( “$SAMPLE_DATA/Big Class.jmp” ) ;
BIV =雙變量(是( :重量) , X ( :高度) ,健身線) ;
重組病毒= BIV <<報告;
框架盒=重組病毒[框架盒( 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 ) ;
// 刪除第一個圖形腳本後,第二個圖形腳本現在位於位置 1(即使它最初分配給位置 2)。 。 。
等待( 1 ) ;
框架盒<<刪除圖形腳本( 1 ) ;
另外,請參閱: https://www.jmp.com/support/help/Adding_Scripts_to_Graphs.shtml