Come eseguire una query al passaggio del mouse, utilizzando i dati dal punto dati sottostante?CIAO,
Vorrei eseguire una query sul database al passaggio del mouse.
Nel mio caso ho molti milioni di immagini ma mi interessa vederne solo pochissime, una alla volta.
Ho preso in giro un caso utilizzando i dati dei set di dati Big Class e Big Class Families.
Ecco lo scenario:
Da ' Grande Classe Traccio il peso contro l'altezza.
Per una questione di interesse voglio vedere che aspetto ha JAMES.
Ho una sua foto in ' Famiglie di grande classe ' così ho pensato che avrei potuto dare un'occhiata eseguendo una query quando passo il mouse sopra l'indicatore di JAMES sul GB Scatter Plot.
Ho tentato di sfruttare la funzionalità Hover Label / Paste Graphlet. Dallo script sottostante puoi vedere che la query può essere eseguita facilmente, ma sfortunatamente ho dovuto codificare "JAMES" nella query.
Quello di cui ho bisogno è che il nome "JAMES" venga inserito in una variabile al passaggio del mouse e successivamente utilizzato nell'SQL. In questo modo potevo guardare l'immagine di qualsiasi persona semplicemente passando il mouse sopra i punti di interesse.
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Big Class.jmp" );
Graph Builder(
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Set Graphlet(
Picture(
dt = Open( "$Sample_Data/Big Class Families.jmp" );
//ImageFor = "JAMES";
ImQ = Query(
Table( dt, "t1" ),
"SELECT name, picture From t1 WHERE name = \!"JAMES\!" "
);
)
)}
)
)
);L'applicazione finale è per la revisione dei wafer semiconduttori, dove dopo aver creato una wafermap basata sulle posizioni dei difetti, la query torna al database ed estrae l'immagine per i difetti di interesse. Quando il numero di difetti è occasionalmente piuttosto elevato, non è pratico caricare tutte le immagini nel datatable a scopo di revisione.
Grazie,
Filippo
Accesso ai datiPersonalizzazione di massaRi: Come eseguire una query al passaggio del mouse, utilizzando i dati dal punto dati sottostante?Mi hai appena migliorato la giornata, buon signore.
Questo è davvero fantastico!
Grazie,
Nascif
Ri: Come eseguire una query al passaggio del mouse, utilizzando i dati dal punto dati sottostante?CIAO,
Ci scusiamo per il ritardo nel ricontattarvi con la dimostrazione promessa.
Nel collegamento video qui sotto vedrai l'applicazione in uso.
Collegamento: https://www.loom.com/share/73150b6a45654d789a6d040bb661cddf
Dal filmato:
Utilizzando JMP, i dati sui difetti vengono raccolti dal database dello strumento di ispezione.
JMP riepiloga quindi i conteggi dei difetti per lotto/wafer e li visualizza in un grafico a linee.
Se c'è un wafer di interesse, passo semplicemente il mouse sopra l'indicatore del conteggio dei difetti e viene disegnato un layout del difetto del wafer utilizzando i dati raccolti in precedenza.
Dopo aver selezionato un wafer di interesse, posso quindi passare con il mouse su un indicatore di difetto, sulla mappa del wafer, che eseguirà una query SQL sul database delle immagini e visualizzerà l'immagine del difetto.
In questo modo non è necessario memorizzare un gran numero di immagini di difetti nella tabella dei dati. Basta ricordare e rivedere le poche immagini di interesse.
Grazie per il tuo supporto nello scripting.
- Filippo
PSPresenterò questa applicazione nel Nordic JMP User Group il 9 ottobre 
Ri: Come eseguire una query al passaggio del mouse, utilizzando i dati dal punto dati sottostante?Eccellente!
Non vedere l'ora di.Ri: Come eseguire una query al passaggio del mouse, utilizzando i dati dal punto dati sottostante?Ciao Nasciff,
Grazie per la pronta risposta e l'ottima soluzione. Questa è esattamente la funzionalità che stavo cercando.
Proverò a costruire un esempio dell'applicazione finale e condividerlo con te.
Slainte,
Filippo
Ri: Come eseguire una query al passaggio del mouse, utilizzando i dati dal punto dati sottostante?CIAO @jpol ,
Questo è un esempio davvero interessante e hai ottenuto il 99% lì.
La variabile che stai cercando è nel contesto locale:
ImageFor = local:_name;
Le estensioni JSL del graphlet vengono eseguite all'interno di un blocco locale che chiamiamo Hover Label Execution Context, o HLEC in breve. Contiene variabili con dati e metadati (come in nomi di colonne) estratti dalla definizione del grafico e dall'elemento visivo sottostante. È possibile trovare la documentazione delle variabili HLEC Qui.
Nel frammento di codice sopra, ho approfittato del fatto che il contenuto delle colonne etichettate è disponibile nell'HLEC per nome (con un prefisso "_") ma potresti anche ottenere il contenuto di qualsiasi colonna nella tabella sottostante utilizzando un riferimento diretto all'indice, in questo modo:
ImageFor = Column(local:_dataTable, "name")[local:_firstRow];
È importante utilizzare il comando Column() qui per assicurarsi di ottenere il valore dalla tabella associata al grafico e non da quella aperta per ottenere l'immagine.
Consulta gli script allegati che implementano il tuo design, quindi evolvilo per mostrare l'immagine sulle miniature e aprire la tabella secondaria solo con un clic.
Potresti anche voler controllare queste discussioni della community che riguardano scenari simili:
* https://community.jmp.com/t5/Discussions/Hover-graphlet-from-another-data-table/mp/296005
* https://community.jmp.com/t5/Discussions/Hover-label/td-p/287358
Nello scambio di file della comunità, Visualizzatore di etichette E Lettore wiki , sono esempi di personalizzazioni avanzate di graphlet che mostrano come visualizzare rispettivamente più immagini e immagini esterne.
Ultimo ma non meno importante, una spina spudorata per la mia imminente Discovery Presentation su Graphlets e il suo "impianto idraulico" sottostante.
https://community.jmp.com/t5/Discovery-Summit-Americas-2020/From-Details-on-Demand-to-Wandering-Workflows-Getting-to-know/ta-p/281539
Saluti,
Nascif