Creazione di diagrammi di Voronoi in JMP o JSLCiao a tutti, vorrei creare un diagramma di Voronoi all'interno dell'ambiente JMP. Ho una serie di coordinate di punti (X e Y) che si trovano all'interno dello stesso piano (Z). Vorrei un modo per mostrare la densità dei punti per unità di area. Un diagramma di Voronoi sarebbe un modo per ottenere questo risultato. Mostra il confine attorno al punto che è definito a metà strada tra la distanza euclidea tra quel punto P1 e il punto successivo Pn.
Ecco la definizione di Wikipedia: https://en.wikipedia.org/wiki/Voronoi_diagram
Ecco le istruzioni per la creazione questo tipo di diagramma in MATLAB
Re: Creazione di diagrammi Voronoi in JMP o JSLCiao,
Prima di tutto scusate per l'errore di ortografia di Voronoi, vecchi occhi. Non sono sicuro a quale domanda stai cercando di rispondere. Penso che potresti cercare una densità o uno schema di raggruppamento su una mappa di wafer, data l'immagine circolare con un raggio di 150 mm. Ho esperienza con i dati di produzione di semiconduttori.
JMP ha molti metodi di clustering e poiché JMP12 fornisce diversi metodi di pattern spaziali, incluso uno che può raggruppare wafer in base a similarità di pattern.Lo script seguente apre una tabella di dati di esempio JMP che rappresenta 125 wafer con diversa densità di difetti e classifica/raggruppa i wafer in base a modelli. Può farlo anche per 1 wafer.
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>
Ho affrontato questo compito perché ho cercato di saperne di più sulla generazione di terreni 3D usando opengl che ha metodi mesh. Tuttavia, non ne so ancora abbastanza. Ho deciso di affrontare la creazione del doppio grafico di Voronoi perché la geometria spaziale è un mio interesse. Come affermato nella mia prima risposta, JMP Triangularization (può essere trovato nella Guida > Scripting Index sotto gli oggetti) crea la traingularization di Delaunay e fornisce anche messaggi da ottenere, triangoli, punti e bordi.
Ho ampliato il mio script per calcolare il doppio grafico di Voronoi. Non ho testato le prestazioni per punti densi; molti dei siti Web con algoritmi e approssimazioni alternativi si occupano delle prestazioni. Utilizzando lo pseudocodice riportato al link fornito da Craig Hales, ho creato uno script. L'ho testato solo sulla singola tabella di dati di esempio. A proposito, quella tabella di dati è stata generata copiando l'immagine dal collegamento, usandola come sfondo in un grafico XY e usando trappola per topi per catturare le coordinate mentre facevo clic sui vertici. Noterai che il punto più a sinistra è leggermente più a sinistra dell'originale. [sì JMP fornisce numerosi strumenti per affrontare un'attività.]Il nuovo script sembra fare il lavoro.Non è pronto per l'applicazione, utilizza una cornice quadrata, non un wafer circolare e standardizza i punti (quindi centrati tra +/-3 in X e Y).
Lo script include un file LCombine.jsl (uno degli script di "JSL Companion Applications of the JMP Scripting Language, 2nd Ed."). È allegato. Dovrai cambiare il percorso nello script allegato alla directory in cui lo hai salvato. Ho allegato l'immagine generata dallo script. È stato testato in JMP 12, 13 e 14.
Se puoi restringere l'attività, come quello che vuoi fare con il grafico o i cluster di Voronoi, sarebbe utile.
Non è in cima alla mia lista, ma credo che i metodi mesh opengl potrebbero essere in grado di creare un grafico Voronoi. Ho bisogno di imparare/esplorare di più prima di dire qualcosa in modo definitivo.
voronoi diagram with JMPdiagramma di voronoi con JMP
Re: Creazione di diagrammi Voronoi in JMP o JSLCiao gzmorgan0,
Questo è un ottimo inizio! Grazie per l'aiuto.
In precedenza ho giocato con i grafici di densità non parametrici, ma non ero sicuro che questo fornisse i risultati di cui avevo bisogno. Il tuo post mi ha aiutato a trovare la documentazione giusta per spiegare matematicamente i grafici di densità non par. Condivido questa definizione di seguito. Ora che l'ho letto, sono ancora preoccupato.
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.
I contorni sono belli, ma dividono solo i punti in quantili uguali. Non mostrano necessariamente la distribuzione uniforme dei punti all'interno della mia area. Ho allegato un esempio di un array di punti dati per cercare di trasmettere il mio punto. Ognuno di questi contorni rappresenta una quantità uguale di superficie ?
Alcune domande di follow-up:
(1) C'è un modo per prendere i dati di contorno non par e manipolarli per mostrare la densità per unità di area? Forse questo è ciò che fa l'opzione "salva griglia di densità" dal menu del triangolo rosso all'interno della densità del quantile.
(2) Posso usare un tema di colore diverso? Sono fortemente contrario al tema del colore dello spettro. in ogni caso, il tema colore () la funzione non funziona all'interno densità non par () su JMP13.
(3) Potete aiutarmi ad estendere la triangolazione di Delaunay per mostrare effettivamente il diagramma di Voronoi? Non sono a mio agio con la matematica.
Re: Creazione di diagrammi di Voronoi in JMP o JSLBel esempio!
e discussione qui: https://stackoverflow.com/questions/85275/how-do-i-derive-a-voronoi-diagram-given-its-point-set-and-its-delaunay-triangula
Re: Creazione di diagrammi di Voronoi in JMP o JSLNon sono un esperto in questo settore, tuttavia, ho ricordato di aver letto che la triangolarizzazione di JMP è un'implementazione della triangolarizzazione di Delaunay che è il "doppio" di Voroni. Non ho gli algoritmi per calcolare la trama "doppio".
In allegato è un set di dati di esempio chiamato voroni.jmp che ho creato per emulare un insieme di punti che si trovano in diversi documenti di formazione Voroni (vedi http://cgl.uni-jena.de/pub/Workshops/WebHome/cgl12new.pdf ).Il file PNG allegato mostra la relazione "duale" tra le trame di Voroni e la tassellazione di Delaunay (triangolarizzazione).Questo file jmp allegato ha diversi script di tabelle di dati allegati. Li ho testati in JMP 12,13 e 14.
Esegui ciascuno degli script di tabella che creano grafici. Dato che sei interessato alla densità per unità di area, guarda il grafico Density of Y By X quindi usa il menu del triangolo rosso invertito per selezionare un Mesh Plot per una vista 3D della densità. Queste viste potrebbero soddisfare le tue esigenze o essere più informative sulla densità.
Se i grafici della densità non servono al tuo scopo e sei ancora interessato ai grafici Voroni, puoi ottenerli dal pacchetto deldir R: vedi https://flowingdata.com/2016/04/12/voronoi-diagram-and-delaunay-triangulation-in-r/ Poiché JMP ha algoritmi di prossimità e distanza più vicini, forse qualcuno fornirà a questo blog i passaggi necessari (o JSL), per creare diagrammi di Voroni.
La tua domanda mi ha motivato a testare il metodo di triangolarizzazione JMP e verificare che produca i risultati "classici" ... dopo che le coordinate X e Y sono state standardizzate. [ Grazie! ] Il JSL allegato ha i passaggi per disegnare i triangoli.
