在 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 JMP帶有 JMP 的 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 鑲嵌(三角化)的“雙重”關係。這個附加的 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 有繪製三角形的步驟。
