Ciao,
A volte il set di dati può contenere punti sovrapposti. La griglia predefinita del passaggio del mouse al passaggio del mouse mostra il numero di punti sovrapposti (N) e alcune altre informazioni (vedere l'immagine di esempio di seguito dal set di dati big class.jmp).

Mi interessa che queste informazioni vengano utilizzate anche in script textlet o graphet. Come posso ottenere le righe al passaggio del mouse da elencare? Posso usare la seguente sintassi per le righe selezionate ma beh, il passaggio del mouse non effettua la selezione. E per quanto ne so, non esiste la funzione "Ottieni righe al passaggio del mouse". Eventuali suggerimenti?
selected_rows = as list(dt << get selected rows);
In seguito restituisce la prima riga delle righe sovrapposte. Come posso fare riferimento ai punti dati sottostanti, ad esempio nei cicli For?
:height[local:_firstRow]
In seguito, come parte di textlet, restituisce il numero di righe sottostanti ma, per quanto ne so, non restituisce le righe, ad esempio come elenco.
<B>Underlying Rows</B>: {local:_underlyingRows}Ho provato a leggere attentamente il seguente capitolo ma non riesco a trovare una soluzione alla mia domanda:
Guida allo scripting > Grafici di scripting > Etichette al passaggio del mouse > Utilizzo del contesto di esecuzione delle etichette al passaggio del mouse
Finora ho risolto questo problema utilizzando il jitter per evitare punti sovrapposti, ma sono sicuro che esiste un modo migliore per farlo. Grazie per i tuoi consigli!
Janne
Ciao Jarmo,
Grazie per il tuo suggerimento di leggere la documentazione più attenta e il tuo rapido esempio. Con questo aiuto, ho capito meglio come il Le variabili di contesto di esecuzione dell'etichetta al passaggio del mouse funzionano (soprattutto _where). Sono stato in grado di incorporare questo concetto alla mia domanda. Grazie ancora,
Janne
Esempio molto veloce qui:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:height), Y(:weight)),
Elements(Points(X, Y, Legend(1))),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
Set Textlet(
Setup(
expr = Parse(local:_where);
local:r = local:_dataTable << Get Rows Where(expr)
),
Markup("{local:r} rows")
)
)
)
);

(ho cliccato sul punto per evidenziarli nella tabella dati)
Se non ricordo male, la Guida di JMP aveva una documentazione abbastanza buona sulle etichette al passaggio del mouse e sul loro contesto di esecuzione: Utilizzo del contesto di esecuzione dell'etichetta al passaggio del mouse (jmp.com) . Potrebbe essere necessario utilizzare le informazioni che è possibile ottenere per eseguire query sulla tabella dati per ottenere tutte le righe.