在 JMP 或 JSL 中創建 Voronoi 圖大家好,我想在 JMP 環境中創建一個 Voronoi 圖。 我有一組位於同一平面 (Z) 內的點坐標 (X & Y)。 我想要一種方法來顯示每單位面積的點密度。 Voronoi 圖是實現此目的的一種方法。 它顯示了該點周圍的邊界,該邊界由該點 P1 和下一個點 Pn 之間的歐幾里得距離的中點定義。
下面是維基百科的定義: https://en.wikipedia.org/wiki/Voronoi_diagram
以下是創建說明MATLAB 中的這種圖表
回复:在 JMP 或 JSL 中創建 Voronoi 圖你好,
首先對 Voronoi 的拼寫錯誤感到抱歉,老眼睛。 我不確定您要回答什麼問題。 給定半徑為 150 毫米的圓形圖片,我認為您可能正在尋找晶圓圖上的密度或聚類模式。 我有半導體製造數據方面的經驗。
JMP 有許多聚類方法,而且由於 JMP12 提供了多種空間模式方法,包括一種可以根據模式相似性對晶圓進行聚類的方法。下面的腳本打開一個 JMP 樣本數據表,表示 125 個具有不同缺陷密度的晶圓,並按模式對晶圓進行分類/聚類。 它也可以為 1 個晶圓做到這一點。
Names Default to Here(1);
dt = Open("$sample_data/Wafer Stacked.jmp");
dt << run script( "Spatial Cluster of Defects");
spWin = Window("Wafer Stacked - Hierarchical Cluster of Defects");
spClust = (spWin<< child)<<CHILD></CHILD>
我解決了這個任務,因為我一直在嘗試學習更多關於使用具有網格方法的 opengl 生成 3D 地形的信息。 但是,我對它們的了解還不夠。 我決定解決創建對偶 Voronoi 圖的問題,因為空間幾何是我的興趣所在。 正如我在第一個回復中所述,JMP 三角化(可以在對像下的幫助 > 腳本索引中找到)創建了 Delaunay 三角化,還提供了獲取、三角形、點和邊的消息。
我擴展了我的腳本來計算 Voronoi 對偶圖。 我沒有測試密集點的性能;許多具有替代算法和近似值的網站都處理性能問題。 使用 Craig Hales 提供的鏈接中報告的偽代碼,我創建了一個腳本。 我只在單個示例數據表上對其進行了測試。 順便說一句,數據表是通過複製鏈接中的圖片生成的,將其用作 XY 圖中的背景,並在我單擊頂點時使用捕鼠器捕獲坐標。 你會注意到最左邊的點比原來的點多一點。 [是的,JMP 提供了許多工具來處理任務。]新腳本似乎可以完成這項工作。它不是應用程序就緒的,使用方形框架,而不是圓形晶圓,並且它標準化了點(因此在 X 和 Y 中以 +/-3 為中心)。
該腳本包含一個文件LCombine.jsl (來自“JMP 腳本語言的 JSL 配套應用程序,第 2 版”的腳本之一)。 它是附加的。 您需要將附加腳本中的路徑更改為保存它的目錄。 我附上了腳本生成的圖片。 它在 JMP 12、13 和 14 中進行了測試。
如果您可以縮小任務範圍,例如您想對 Voronoi 圖或集群執行的操作,那將很有幫助。
它在我的列表中並不高,但我相信 opengl 網格方法可能能夠創建 Voronoi 圖。 在明確地說任何事情之前,我需要做更多的學習/探索。
voronoi diagram with JMPvoronoi diagram with JMPJMP 的 voronoi 圖
回复:在 JMP 或 JSL 中創建 Voronoi 圖嗨 gzmorgan0,
這是一個很好的開始! 感謝您的幫助。
我以前確實玩過非參數密度圖,但我不確定這是否提供了我需要的結果。 你的帖子幫助我找到了正確的文檔來從數學上解釋非標準密度圖。 我在下面分享這個定義。 現在我已經讀到它了,我仍然很擔心。
Nonpar Density estimates a smooth nonparametric bivariate surface that describes the density
of data points. The plot adds a set of contour lines showing the density (Figure 5.16). The
contour lines are quantile contours in 5% intervals. This means that about 5% of the points
generated from the estimated nonparametric distribution are below the lowest contour, 10%
are below the next contour, and so on. The highest contour has about 95% of the points below
it.
輪廓很好,但它們只是將點分成相等的分位數。 它們不一定顯示點在我區域內的分佈有多均勻。 我附上了一個數據點數組的例子來試圖表達我的觀點。 這些等高線是否代表等量的表面積?
一些後續問題:
(1) 有沒有辦法獲取非標準輪廓數據並對其進行處理以顯示單位面積的密度? 也許這就是分位數密度內紅色三角形菜單中的“保存密度網格”選項所做的。
(2) 我可以使用不同的顏色主題嗎? 我強烈反對光譜顏色主題。 但是,那顏色主題()功能在內部不起作用非標準密度()在 JMP13 上。
(3) 你能幫我擴展 Delaunay 三角剖分以實際顯示 Voronoi 圖嗎? 我自己對數學不太滿意。
回复:在 JMP 或 JSL 中創建 Voronoi 圖很好的例子!
和這裡的討論: https://stackoverflow.com/questions/85275/how-do-i-derive-a-voronoi-diagram-given-its-point-set-and-its-delaunay-triangula
回复:在 JMP 或 JSL 中創建 Voronoi 圖我不是這方面的專家,但是,我記得讀過 JMP 三角化是 Delaunay 三角化的一種實現,它是 Voroni 的“對偶”。 我沒有計算“對偶”圖的算法。
附件是我創建的一個名為 voroni.jmp 的示例數據集,用於模擬在多個 Voroni 培訓文檔中找到的一組點(請參閱http://cgl.uni-jena.de/pub/Workshops/WebHome/cgl12new.pdf ).附加的 PNG 文件顯示了 Voroni 圖和 Delaunay tesselation(三角化)的“雙重”關係。這個附加的 jmp 文件附有幾個數據表腳本。 我在 JMP 12,13 和 14 中測試了它們。
運行每個創建圖形的表腳本。 由於您對每單位面積的密度感興趣,請查看圖表 Y 乘 X 的密度,然後使用倒置的紅色三角形菜單選擇網格圖以獲得密度的 3D 視圖。 這些視圖可能會滿足您的需要或提供有關密度的更多信息。
如果密度圖不能滿足您的目的並且您仍然對 Voroni 圖感興趣,您可以從 deldir R 包中獲取它們:請參閱https://flowingdata.com/2016/04/12/voronoi-diagram-and-delaunay-triangulation-in-r/由於 JMP 確實有最近鄰和距離算法,也許有人會為此博客提供必要的步驟(或 JSL)來創建 Voroni 圖。
你的問題促使我測試 JMP 三角化方法並驗證它產生“經典”結果......在 X 和 Y 坐標被標準化之後。 [ 謝謝! ] 附帶的 JSL 有繪製三角形的步驟。
