你好,
我正在嘗試使用圖形產生器將一組點用線段連接起來,並僅顯示其他點的標記。這樣我的圖看起來就像這樣(此處的線條是手動添加到圖片中以便說明):

我嘗試使用單獨的列來實現疊加功能,它確實允許為不同的點組繪製單獨的線。但我無法刪除這些線,只為單點組保留標記(反之亦然)。
在JMP表中,我將應該用線連接的點分別設定為4個點。理想情況下,這4個點中的最後一個應該與第一個點相連。
附件是 JMP 檔案(JMP 18,常規版本,不是 PRO)。
非常感謝任何建議或意見。
謝謝你!
弗拉基米爾

我以互動方式製作了此
- 我在資料表中新增了一個額外的覆蓋行,以新增連接線以結束其開始的位置

- 然後我將 Overlay_column 拖到顏色下拉框
- 然後我在圖表中添加了一條線,顯示了兩條線

- 我不想要黑線,所以我只是將黑線的線條顏色設為白色

- 這使得非疊加資料點的標記看起來很奇怪。這是因為之前的黑線顯示在點的上方。
- 要將黑點移動到現在的白色(用戶看不見的)線條上方,我右鍵單擊圖表並選擇“自訂”

- 然後我選擇標記 0,並使用向下箭頭將黑色標記向下移動到線 (0) 上方

- 最終的圖表

這是產生圖表的 JSL
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :Ex ),
Y( :Gxy ),
Overlay( :overlay_column ),
Color( :overlay_column )
),
Elements(
Points( X, Y, Legend( 5 ) ),
Line( X, Y, Legend( 6 ), Row order( 1 ) )
),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model(
5,
Properties(
0,
{Line Color( 0 ), Marker( "FilledCircle" )},
Item ID( "0", 1 )
),
Properties( 1, {Marker( "Circle" )}, Item ID( "1", 1 ) )
), Legend Model(
6,
Properties( 0, {Line Color( 2 )}, Item ID( "0", 1 ) )
)}
),
Dispatch( {}, "Graph Builder", FrameBox, {Reorder Segs( {1, 2, 5, 6} )} )
)
);
還有其他方法可以解決這個問題。這裡有一個直接的 JSL 方法,使用「新增圖形腳本」來繪製線條

Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :Ex ), Y( :Gxy ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Gxy", ScaleBox,
{Min( 0.781114518510881 ), Max( 3.84890945699133 ), Inc( 0.5 ),
Minor Ticks( 0 )}
),
Dispatch( {}, "Graph Builder", FrameBox,
{Add Graphics Script(
2,
Description( "" ),
Pen Color( "Red" );
Line( {5, 1}, {5.5, 3.5}, {10, 3}, {11, 1.5}, {5, 1} );
)}
)
)
);
無需覆蓋列和行
嘿@VladimirB ,
我可以得到你想要的結果,但這種方法真的很笨重,因為你必須對行進行排序,以確保點按照你想要的方式連接。所以現在你並不是只要選擇這些點,它們就能構成一個漂亮的閉合形狀。但是,由於你的範例中的資料順序正確,所以這種方法確實能達到你想要的效果。

我創建了兩個新列(col 4 和 col 5),它們只返回所選行的值,然後在末尾添加了一個虛擬行,允許 col 4 和 col 5 返回所選的最低值,從而關閉形狀。


我新增第 4 列作為第二個 Y 軸,第 5 列作為第二個 x 軸,點元素僅尊重 Gxy 和 Ex,線元素僅尊重行順序中的 Col4 和 Col 5。
所以就像說的那樣,雖然有點笨重,但它可以讓你達到目的,並可能激勵你或其他用戶做出更好的東西!
史蒂夫
嘿@VladimirB ,
所以我想做一個能互動的東西來創造你所問到的連結點,所以我想出了這個腳本,可以互動地連結點。附件是一個腳本,你可以用它來選擇點,並讓它們透過線段連接起來。
當你運行它時,它會詢問你使用哪些列作為 Y 軸和 x 軸列

當您按下“確定”時,它將建立三列,然後會彈出一個新視窗:

此時您可以執行表格腳本

這給了你這個

現在您可以選擇一個點,然後在使用者介面視窗中按一下“設定值”

然後您可以選擇一個新點並再次按下“設定值”按鈕來連接這兩個點

重複此操作,直到選取所有點

選擇所有點後,按一下「完成」按鈕將線連結到起點

如果你錯過了一個點,你可以選擇它並按“設定值”,這會讓它看起來一秒鐘混亂

但您可以使用“插入中間點”按鈕來修復它。在這種情況下,點 8 實際上應該位於點 5 之後,因此當您點擊按鈕時,您將輸入 5 並按下「確定」。

然後 Bam! 點被重新排序

如果需要重新開始,請按下「清除值」按鈕
希望這能幫到你!另外,我確信這在許多情況下都不夠穩定,所以除了我剛才示範的工作流程之外,它很有可能存在 bug。
嘿@hogi ,
我確信你可以讓它比我更有用。
史蒂夫