La grafica JMP può avere questo effetto?Questo è l'effetto HTML.
Il graphlet JMP può ottenere questo effetto?
Grazie!

Automazione e scriptingFinestreR: La grafica JMP può avere questo effetto?
@hogi wrote:
Come posso accedere a questo namespace?
Entrambi:
Report(gb)[FrameBox(1)] << get namespace() ;
(Report(gb)[FrameBox(1)] << find seg(TopSeg (1))) << get namespace();
produrre un nuovo namespace.
... Ho chiesto al supporto JMP: TS- 00173810
Purtroppo:
Voinon può accesso IL grafica sceneggiatura spazio dei nomi esternamente.
R: La grafica JMP può avere questo effetto?Ahia, certo: come si disegna un cerchio?
R: La grafica JMP può avere questo effetto?La maniglia è. Il cerchio non è. *Penso* che il cerchio perfettamente rotondo sulla griglia non quadrata abbia il suo raggio definito nelle coordinate dell'asse Y.
R: La grafica JMP può avere questo effetto?Interessante. Perché la maniglia non è legata al sistema di coordinate x/y?
Funziona ancora dopo aver ridimensionato il grafico, ma c'è uno scostamento significativo:
R: La grafica JMP può avere questo effetto?-
R: La grafica JMP può avere questo effetto?puoi usare argomenti di funzione invece di x,y
Names Default To Here( 1 );
New Window( "Example",
trapx = 20;
trapy = 50;
handx = 70;
handy = 80;
trapcolor="blue";
handcolor="blue";
Graph Box(
Frame Size( 200, 200 ),
handle( handx, handy, // any handle(s) must come before Mousetrap
Function( {a, b}, handx=a; handy=b;
Write( Eval Insert( "\!nhand drag ^a^ ^b^" ) );
handcolor="magenta"; )
, // the mouse-up handler
Function( {a, b}, handx=a; handy=b;
Write( Eval Insert( "\!nhand release ^a^ ^b^" ) );
handcolor="cyan"; )
);
Mousetrap( // should not be more than one Mousetrap, the first one captures all clicks
Function( {a, b}, trapx=a; trapy=b;
Write( Eval Insert( "\!ntrap drag ^a^ ^b^" ) );
trapcolor="red"; )
, // the mouse-up handler
Function( {a, b}, trapx=a; trapy=b;
Write( Eval Insert( "\!ntrap release ^a^ ^b^" ) );
trapcolor="green"; )
);
// the drawing occurs outside of the mousetrap or handle
pencolor(trapcolor);
pensize(3);
Circle( {0, 0}, Sqrt( trapx * trapx + trapy * trapy ) );
pencolor(handcolor);
pensize(3);
Circle( {0, 0}, Sqrt( handx * handx + handy * handy ) );
)
);
Se hai bisogno di una o più maniglie, queste devono apparire prima della trappola per topi, perché un clic verrà consumato dalla trappola per topi se nessuna maniglia precedente lo ha preso.
Re: La grafica JMP può avere questo effetto?
Ok, UN Namespace condiviso per Framebox - separato dal Namespace globale
- e separato dal Namespace degli altri FrameBox.
modifica: wow, interpretazione del tutto sbagliata della scoperta.
::x= 5;
(Report( gb )<< xpath("//FrameBox")) << add graphics script(//
If(Not( Is Empty( x ) ), // if the mouse did not yet enter the graph -> do nothing.
Caption("global x is "|| Char(::X));
V Line(x+3);
)
//
);
Un'altra scoperta - alla fine del video:
il ridimensionamento della finestra attiva un ripristino del grafico con i valori originali dello spazio dei nomi Qui .
Come posso accedere a questo namespace?
Entrambi:
Report(gb)[FrameBox(1)] << get namespace() ;
(Report(gb)[FrameBox(1)] << find seg(TopSeg (1))) << get namespace();
produrre un nuovo namespace.
R: La grafica JMP può avere questo effetto?Ho appena trovato queste informazioni nello Scripting Index:

le coordinate x e y vengono memorizzate come variabili globali per l'esecuzione dello script.
Tutte le variabili globali preesistenti x e y vengono ripristinate dopo l'esecuzione dello script.
Ecco dove la storia potrebbe finire.
Rimuovi il commento
// x=y=60;
fa sì che il grafico inizi con una linea in x = 60. -> lo script utilizza la variabile locale dallo spazio dei nomi Here .
Ciò che mi ha sorpreso:
Quando provo a trascinare la linea in un'altra posizione, funziona!
Perché è sorprendente:
x all'interno del namespace Here rimane a 60. E lo script preferirà le variabili dal namespace Here rispetto alle variabili dal namespace globale. [Modifica: per le variabili globali i valori originali dovrebbero essere "ripristinati" a questo punto: dopo l'esecuzione di MouseTrap]. Quindi, perché lo script funziona?!
Sembra che all'interno dello script ci siano variabili locali x e y che vengono usate preferibilmente, invece delle variabili dello spazio dei nomi Here . Questa interpretazione è corretta?
Quindi, sotto la riga, è molto gentile che JMP faccia uno sforzo extra con le variabili globali. In questo modo anche le funzioni che vivono al di fuori del contesto dello script grafico (myfunctions:xy ) possono accedere alle variabili 
forse interessante controllare:
Script grafici di un FrameBox: condividono uno spazio dei nomi comune oppure ogni script grafico utilizza il proprio ...
R: La grafica JMP può avere questo effetto?VEDO
Grazie Craig!
R: La grafica JMP può avere questo effetto?@hogi MouseTrap è una cosa strana in JSL. È una funzione che non fa nulla quando viene eseguita e non importa se viene eseguita o meno o (per lo più) dove è posizionata nello script. Quando si verifica uno spostamento del mouse sul grafico, le coordinate vengono inviate allo script in x,y che devono essere copiate nelle variabili globali come mostrato.
Handle e le varie varianti di Drag hanno una posizione associata e si attiveranno solo se sufficientemente vicine. L'ordine ha un po' di importanza, perché il primo incontrato nello script che è sufficientemente vicino (pochi pixel) riceverà l'aggiornamento.
Non riesco a spiegare completamente perché funziona con il tuo cambiamento. X non dovrebbe proprio esistere... sembra che sfugga alla trappola per topi!
Ho riparato lo script nel mio primo post.
R: La grafica JMP può avere questo effetto?Sembra che si stia aggiungendo uno script di drill con passaggio del mouse.
For(iFrame=1,iFrame<=N Items(framelist),iFrame+=1,frame=framelist[iFrame]; Eval(Eval Expr(frame<<ADDGRAPHICSSCRIPT></ADDGRAPHICSSCRIPT>
Thanks Experts!
R: La grafica JMP può avere questo effetto?@Craige_Hales , carino, molto fluido! 
Quasi troppo fluido: spero che questo esempio non impedisca agli sviluppatori di implementare un approccio non JSL.
alcuni argomenti per un supporto nativo tramite Graph Builder:
- rendere il Graph Builder nativo più potente
- rendere felici anche gli utenti non JSL
- mostra le annotazioni automatiche anche senza clic del mouse
-> consente agli utenti di utilizzare il mouse come al solito per selezionare i punti dati
(con l'attuale approccio "JSL", si potrebbero aggiungere alcuni pulsanti di attivazione/disattivazione per scegliere la modalità corretta, come è implementato per il diagramma di Venn )
Ci ho messo un po' a capire il messaggio di errore!
Names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
// x=y=60;
fb = Report( gb )[FrameBox( 1 )];
fb << addgraphicsscript(//
If(Not( Is Empty( x ) ), // if the mouse did not yet enter the graph -> do nothing.
Mousetrap("nothing to do");
V Line(x);
// at this point you can highlight all the values near xx
For( irow = 1, irow <= N Rows( dt ), irow += 1,
If( Abs( dt:height[irow] - x ) < 0.5, // big class height step is 1, <.5 selects a single column of weights
Marker( Marker State( 4 ), {dt:height[irow], dt:weight[irow]} )
)
);
xwidth = X Range();
xmidpoint = X Origin() + xwidth / 2;
If( x < xmidpoint,
Text( {x + xwidth / 100, y}, "height " || Char( Round( x ) ) || "\!nmore" )//
,
Text(
right justified,
{x - xwidth / 100, y},
"height " || Char( Round( x ) ) || "\!nmore"
)
);
)
//
);
R: La grafica JMP può avere questo effetto?
R: La grafica JMP può avere questo effetto?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
fb = Report( gb )[FrameBox( 1 )];
xx = yy = 0;
fb << addgraphicsscript(//
Mousetrap(
xx = x;
yy = y;
);
V Line( xx );
// at this point you can highlight all the values near xx
For( irow = 1, irow <= N Rows( dt ), irow += 1,
If( Abs( dt:height[irow] - xx ) < 0.5, // big class height step is 1, <.5 selects a single column of weights
Marker( Marker State( 4 ), {dt:height[irow], dt:weight[irow]} )
)
);
xwidth = X Range();
xmidpoint = X Origin() + xwidth / 2;
If( xx < xmidpoint,
Text( {xx + xwidth / 100, yy}, "height " || Char( Round( xx ) ) || "\!nmore" )//
,
Text( right justified, {xx - xwidth / 100, yy}, "height " || Char( Round( xx ) ) || "\!nmore" )
);
//
);
modifica: la riga 18 ora dice xx anziché x. Deve essere rimasto qualcosa nel mio namespace. Grazie @lala @hogi
R: La grafica JMP può avere questo effetto?tramite ( JSL-free ) Graph Builder: non ancora. Forse in una versione futura?
Sempre più programmi della concorrenza forniscono questo tipo di annotazioni, quindi immagino che saranno implementate anche in JMP.
Puoi andare su Nuovo tipo di mirino per grafici lineari e più fluidi e supportare il desiderio di @shampton82 .
R: La grafica JMP può avere questo effetto?tramite JSL, sì.
R: La grafica JMP può avere questo effetto?Ho modificato leggermente lo script per visualizzare i valori del peso invece di altro:
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
fb = Report( gb )[FrameBox( 1 )];
xx = yy = 0;
valuesMatrix = :height << Get Values; //***new*** Get column values for height
fb << addgraphicsscript(//
Mousetrap(
xx = x;
yy = y;
);
V Line( xx );
// at this point you can highlight all the values near xx
For( irow = 1, irow <= N Rows( dt ), irow += 1,
If( Abs( dt:height[irow] - xx ) < 0.5, // big class height step is 1, <.5 selects a single column of weights
Marker( Marker State( 4 ), {dt:height[irow], dt:weight[irow]} )
)
);
valuesRows = char(:weight[loc(valuesMatrix,round(xx))]); //***new*** write to char weight values for all rows of height at position round(xx)
xwidth = X Range();
xmidpoint = X Origin() + xwidth / 2;
If( xx < xmidpoint,
Text( {xx + xwidth / 100, yy}, "height " || Char( Round( xx ) ) || "\!nweight " || valuesRows )////***new*** exchanged "more" with weigth and list of weight values for that location of height
,
Text( right justified, {xx - xwidth / 100, yy}, "height " || Char( Round( xx ) ) || "\!nweight " || valuesRows )
);
//
);
Potresti anche aggiungere l'ordinamento dei valori in ordine crescente/decrescente.
Re: La grafica JMP può avere questo effetto?Mmm, penso che molte delle mie conclusioni fossero sbagliate.
Un altro tentativo:

- Forse il
non significa "dopo aver eseguito lo script [trascinamento]", ma piuttosto "con il mouse su".
- E molto importante. Se non c'è bisogno di aggiornare un Framebox , non viene aggiornato.
COSÌ,
- quando si sposta il mouse, le nuove coordinate vengono salvate in x e y
(
? No - nello spazio dei nomi Here perché abbiamo utilizzato Names predefinito su HERE (1) )
- ... e i valori possono essere utilizzati all'interno dello spazio dei nomi Here, anche al di fuori di Trappola per topi() . Questo ha lasciato perplesso @Craige_Hales , e ho messo un altro piede nella trappola: Creazione di uno script drag-amp-drop
- Dopo l'aggiornamento delle variabili, JMP riceve un trigger per ridisegnare THE Framebox con lo script grafico e i valori x e y correnti .
- Altri Framebox non vengono aggiornati:
Se spostiamo il mouse nel riquadro sinistro, quello centrale non viene aggiornato e viceversa.
Questo crea l'illusione di due namespace separati. Non c'è quindi da stupirsi che gli utenti non possano accedere allo spazio dei nomi di un frame box: non esiste. Si tratta semplicemente dello spazio dei nomi condiviso Qui , in combinazione con gli aggiornamenti locali di Framebox.
- Dopo aver rilasciato il pulsante del mouse, x e y
.
Tuttavia, non viene attivato alcun aggiornamento delle caselle dei frame. Pertanto, l'utente non si accorge di questo reset delle variabili nello spazio dei nomi Qui .
- Proprio quando il grafico viene aggiornato la volta successiva (ad esempio ridimensionato o alcuni punti dati selezionati), lo script grafico viene eseguito nuovamente e rivela che i valori sono stati reimpostati (qualche tempo fa).
Oggetto: La grafica JMP può avere questo effetto?gpt-5.6-luna.
ricordami di questo post

non male!
Oggetto: La grafica JMP può avere questo effetto?È davvero fantastico, @Craige_Hales , @martindemel e @hogi .
È una funzionalità davvero utile e la approvo pienamente se integrata nativamente in Graph Builder. Apprezzo il modo in cui evidenzia i punti dati vicini al punto in cui è stato cliccato il grafico.
C'è un modo per disattivarlo? Una volta cliccato sul grafico, la linea verticale rimane visibile. Sarebbe utile poter reimpostare il grafico al termine dell'operazione. Questa funzionalità potrebbe anche essere più facile da implementare nativamente nella piattaforma piuttosto che tramite JSL.
Grazie!,
DS
Oggetto: La grafica JMP può avere questo effetto?@SDF1 grazie! Puoi usare un secondo argomento script per mousetrap per rilevare il rilascio del pulsante e rimuovere lo script grafico. Il primo script viene chiamato quando il mouse viene premuto e per ogni movimento successivo. Se viene fornito il secondo script, questo viene chiamato con gli stessi parametri per indicare quando il mouse viene rilasciato.
Oggetto: La grafica JMP può avere questo effetto?Non mi sarei mai aspettato che Gemini 3.1 Pro potesse completare questo capolavoro. 
Oggetto: La grafica JMP può avere questo effetto?Favola di Claude 5 