在 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 有绘制三角形的步骤。
