Création de diagrammes de Voronoi dans JMP ou JSLBonjour à tous, j'aimerais créer un diagramme de Voronoi dans l'environnement JMP. J'ai un ensemble de coordonnées de points (X & Y) situées dans le même plan (Z). Je voudrais un moyen de montrer la densité des points par unité de surface. Un diagramme de Voronoï serait un moyen d'y parvenir. Il montre la frontière autour du point qui est défini par la moitié de la distance euclidienne entre ce point P1 et le point suivant Pn.
Voici la définition de Wikipédia : https://en.wikipedia.org/wiki/Voronoi_diagram
Voici les instructions pour créer ce type de diagramme dans MATLAB
Re : Création de diagrammes de Voronoi dans JMP ou JSLSalut,
Tout d'abord désolé pour la faute d'orthographe de Voronoï, vieux yeux. Je ne sais pas à quelle question vous essayez de répondre. Je pense que vous recherchez peut-être une densité ou un motif de regroupement sur une carte de plaquette, compte tenu de l'image circulaire avec un rayon de 150 mm. J'ai de l'expérience avec les données de fabrication de semi-conducteurs.
JMP propose de nombreuses méthodes de regroupement et, depuis JMP12, fournit plusieurs méthodes de modèle spatial, dont une qui peut regrouper des tranches en fonction de similitudes de modèle.Le script ci-dessous ouvre un exemple de tableau de données JMP représentant 125 tranches avec différentes densités de défauts et classe/regroupe les tranches par modèles. Il peut également le faire pour 1 plaquette.
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>
J'ai abordé cette tâche parce que j'ai essayé d'en savoir plus sur la génération de terrains 3D à l'aide d'opengl qui a des méthodes de maillage. Cependant, je ne les connais pas encore assez. J'ai décidé de m'attaquer à la création du graphe de Voronoi dual parce que la géométrie spatiale est un de mes centres d'intérêt. Comme indiqué dans ma première réponse, JMP Triangularization (peut être trouvé dans Help > Scripting Index sous objects) crée la formation Delaunay et fournit également des messages à obtenir, des triangles, des points et des arêtes.
J'ai développé mon script pour calculer le double graphe de Voronoi. Je n'ai pas testé les performances pour les points denses ; de nombreux sites Web avec des algorithmes alternatifs et des approximations traitent des performances. En utilisant le pseudo-code indiqué sur le lien fourni par Craig Hales, j'ai créé un script. Je ne l'ai testé que sur le seul exemple de table de données. Au fait, cette table de données a été générée en copiant l'image à partir du lien, en l'utilisant comme arrière-plan dans un graphique XY et en utilisant une souricière pour capturer les coordonnées lorsque je cliquais sur les sommets. Vous remarquerez que le point le plus à gauche est un peu plus à gauche que l'original. [oui JMP fournit de nombreux outils pour s'attaquer à une tâche.]Le nouveau script semble faire le travail.Il n'est pas prêt pour l'application, utilise un cadre carré, pas une plaquette circulaire, et il normalise les points (donc centrés entre +/-3 en X et Y).
Le script comprend un fichier LCombine.jsl (l'un des scripts de "JSL Companion Applications of the JMP Scripting Language, 2nd Ed."). Il est attaché. Vous devrez modifier le chemin dans le script joint vers le répertoire où vous l'avez enregistré. J'ai joint l'image générée par le script. Il a été testé dans JMP 12, 13 et 14.
Si vous pouvez affiner la tâche, comme ce que vous voulez faire avec le graphique de Voronoi ou les clusters, ce serait utile.
Ce n'est pas en haut de ma liste, mais je pense que les méthodes de maillage opengl pourraient être en mesure de créer un graphe de Voronoi. J'ai besoin de faire plus d'apprentissage / d'exploration avant de dire quoi que ce soit définitivement.
voronoi diagram with JMPdiagramme de voronoï avec JMP
Re : Création de diagrammes de Voronoi dans JMP ou JSLSalut gzmorgan0,
C'est un bon début! Merci de votre aide.
J'ai déjà joué avec les tracés de densité non paramétriques, mais je n'étais pas sûr que cela fournisse les résultats dont j'ai besoin. Votre message m'a aidé à trouver la bonne documentation pour expliquer mathématiquement les tracés de densité non par. Je partage cette définition ci-dessous. Maintenant que j'ai lu à ce sujet, je suis toujours inquiet.
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.
Les contours sont agréables, mais ils ne font que diviser les points en quantiles égaux. Ils ne montrent pas nécessairement à quel point les points sont uniformément répartis dans ma zone. J'ai joint un exemple de tableau de points de données pour essayer de transmettre mon point de vue. Ces contours représentent-ils chacun une quantité égale de superficie ?
Quelques questions complémentaires :
(1) Existe-t-il un moyen de prendre les données de contour non par et de les manipuler pour afficher la densité par unité de surface ? C'est peut-être ce que fait l'option "enregistrer la grille de densité" dans le menu du triangle rouge dans la densité quantile.
(2) Puis-je utiliser un thème de couleur différent ? Je suis fortement opposé au thème des couleurs du spectre. Cependant, le thème de couleur() la fonction ne fonctionne pas dans densité non par() sur JMP13.
(3) Pouvez-vous m'aider à étendre la triangulation de Delaunay pour montrer réellement le diagramme de Voronoï ? Je ne suis pas à l'aise avec les maths moi-même.
Re : Création de diagrammes de Voronoi dans JMP ou JSLBel exemple !
et débat ici : https://stackoverflow.com/questions/85275/how-do-i-derive-a-voronoi-diagram-given-its-point-set-and-its-delaunay-triangula
Re : Création de diagrammes de Voronoi dans JMP ou JSLJe ne suis pas un expert dans ce domaine, cependant, je me souviens avoir lu que la triangularisation JMP est une implémentation de la triangularisation de Delaunay qui est le "dual" de Voroni. Je n'ai pas les algorithmes pour calculer le tracé "dual".
Vous trouverez ci-joint un exemple d'ensemble de données appelé voroni.jmp que j'ai créé pour émuler un ensemble de points que l'on trouve dans plusieurs documents de formation Voroni (voir http://cgl.uni-jena.de/pub/Workshops/WebHome/cgl12new.pdf ).Le fichier PNG ci-joint montre la relation "duale" des parcelles de Voroni et de la tesselation de Delaunay (triangularisation).Ce fichier jmp joint contient plusieurs scripts de table de données. Je les ai testés dans JMP 12,13 et 14.
Exécutez chacun des scripts de table qui créent des graphiques. Puisque vous êtes intéressé par la densité par unité de surface, regardez le graphique Densité de Y par X puis utilisez le menu du triangle rouge inversé pour sélectionner un Mesh Plot pour une vue 3D de la densité. Ces vues peuvent répondre à vos besoins ou être plus informatives concernant la densité.
Si les tracés de densité ne servent pas votre objectif et que vous êtes toujours intéressé par les tracés de Voroni, vous pouvez les obtenir à partir du package deldir R : voir https://flowingdata.com/2016/04/12/voronoi-diagram-and-delaunay-triangulation-in-r/ Étant donné que JMP dispose d'algorithmes de voisinage et de distance les plus proches, quelqu'un fournira peut-être à ce blog les étapes nécessaires (ou JSL) pour créer des diagrammes de Voroni.
Votre question m'a motivé à tester la méthode de triangularisation JMP et à vérifier qu'elle produit les résultats "classiques" ... après la normalisation des coordonnées X et Y. [ Merci! ] Le JSL ci-joint contient des étapes pour dessiner les triangles.
