Modifica l'ordine di disegno degli elementi grafici utilizzando JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti,
So che puoi modificare l'ordine di disegno degli elementi grafici facendo clic con il pulsante destro del mouse su un grafico, quindi facendo clic su Personalizza e quindi spostando l'ordine degli script grafici utilizzando le frecce su/giù. C'è un modo per farlo usando JSL? Ci sono messaggi che puoi inviare al Framebox per cambiare l'ordine delle linee della griglia e delle linee di riferimento, speravo ci fosse qualcosa di simile per i marcatori. Puoi anche cambiare la trasparenza di cose come linee adattate, ecc. Grazie!
Ri: Cambia l'ordine di disegno degli elementi grafici usando JSLUtilizzando JMP 14.2, le opzioni di personalizzazione del grafico funzionano con comandi jsl come questo, con i valori della variabile "Window" e "Frame Box", e quindi arbitrari per questo esempio:
Window(6)[Frame Box( 1 )] << Dispatch( {}, "Oneway Plot", FrameBox, {Grid Line Order( 3 )})
Sono in grado di eseguire questo trucco per visualizzare le linee della griglia sopra i marcatori per le piattaforme bivariate, di variabilità e di contorno, ma non riesco a farlo funzionare per la piattaforma Oneway oltre un valore di 3. Il marcatore è nella quinta posizione per impostazione predefinita, quindi ho bisogno che l'ordine della griglia sia dopo. Mentre il comando precedente con Grid Line Order ( 2 ) o Grid Line Order ( 3 ) funziona correttamente, non succede nulla quando utilizzo Grid Line Order ( 4 ) o Grid Line Order ( 5 ). Credo che questo sia un bug.
Se eseguo il puntamento e il clic e forzo l'ordine della linea della griglia su 5, quindi salvo lo script nella finestra dello script, ottengo "Ordine della linea della griglia (5), Ordine della linea di riferimento (1)", ma eseguo lo script così com'è dal la finestra dello script non mette nemmeno le linee della griglia in quinta posizione.
Faccio eco al commento di @nkelleh : " Il suo sfortunato messaggio 'marker order' non è stato incluso insieme ai messaggi 'Reference Line Order' e 'Grid Line Order' per il Frame Box." JMP che consente opzioni come 'Dopo/Prima' o 'Ultimo/Primo', come fa con la disposizione di colonne o righe in una tabella di dati, sarebbe utile anche qui.
Ri: Cambia l'ordine di disegno degli elementi grafici usando JSLIn realtà, anche quello funziona. Non so perché non ho pensato di provarlo. Saluti.
Ri: Cambia l'ordine di disegno degli elementi grafici usando JSLHai provato ad aggiungere il markerseg al frame dopo averlo eliminato?
- markerSeg1 = bivFrame << Trova Seg( Marker Seg( 1 ));
- markerSeg1 << Elimina;
- bivFrame << appendseg(markerSeg1);
Questo dovrebbe farlo durare nell'ordine di sorteggio.L'eliminazione lo rimuove semplicemente dall'albero, quindi dovrebbe essere sicuro aggiungerlo di nuovo.
Ri: Cambia l'ordine di disegno degli elementi grafici usando JSLAh beh, ho dovuto chiedere per ogni evenienza!
Grazie per la soluzione alternativa, sono stato in grado di ottenere l'output che stavo cercando eliminando i marcatori esistenti e ridisegnandoli come suggerito dal thread che hai collegato. Perdi l'interattività della piattaforma in termini di selezione dei punti dati, ma poiché questo era per scopi puramente di visualizzazione dei dati, per me andava bene.
Grazie ancora.
Di seguito è riportato il segmento di codice che ho riutilizzato per eliminare i marcatori e ridisegnarli
//Delete Markers if requiredmarkerSeg1 = bivFrame << Find Seg( Marker Seg(1) );markerSeg1 << Delete;//Script to redraw markers on topbivFrame << Add Graphics Script( For(r=1, r <= NRows(dtMain), r++, y = Column( dtMain, "Voltage" ); x = Column( dtMain, "Temp" ); ms = Combine States( Marker State( Marker Of( Row State( r ) ) ), Color State( Color Of( Row State( r ) ) ) ); Marker(ms, {x, y}); ); );Ri: Cambia l'ordine di disegno degli elementi grafici usando JSLScusa, ora ho capito.
Nella speranza che qualcuno dimostri che mi sbaglio, dirò che purtroppo sei "sfortunato". Sia in termini di manipolazione programmatica delle frecce su/giù, sia di trasparenza delle linee adattate.
Non necessariamente consigliato, ma se vuoi portare i marcatori in primo piano potresti considerare di ridisegnarli con uno script grafico usando una variazione di: https://community.jmp.com/thread/65641
Ri: Cambia l'ordine di disegno degli elementi grafici usando JSLCiao Ian,
Grazie ancora, consigli utili. Qui, voglio mantenere gli altri elementi grafici, in questo caso spline adattate, ma portare i marcatori in primo piano rispetto alla trama (le linee dell'adattamento della spline oscurano i marcatori nelle aree in cui molte linee/marcatori sono vicine tra loro. Posso farlo manualmente usando il metodo descritto nel post originale, chiedendomi solo se esiste un modo per farlo a livello di programmazione. Il suo sfortunato messaggio 'marker order' non è stato incluso insieme ai messaggi 'Reference Line Order' e 'Grid Line Order' per il Frame Box.
È facile modificare la trasparenza degli oggetti disegnati utilizzando uno script grafico. In un'altra nota, mi chiedevo se esiste un modo per modificare la trasparenza delle linee adattate, ad esempio, nella piattaforma Bi-variata.
Grazie ancora per tutto il vostro aiuto.
Ri: Cambia l'ordine di disegno degli elementi grafici usando JSLCordiali saluti, puoi fare questo genere di cose (quindi con la possibilità di modificare l'ordine della griglia e delle linee di riferimento potresti essere in grado di ottenere ciò che desideri):
I nomi predefiniti sono qui ( 1 ) ;
Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
biv = Bivariato ( Y ( : peso ) , X ( : altezza ) , Fit Line ) ;
rbiv = biv << rapporto ;
framebox = rbiv [ scatola del telaio ( 1 )] ;
Aspettare ( 1 ) ;
framebox <<
Aggiungi script grafico (
1 ,
Descrizione ( "Poligono arancione" ) ,
Trasparenza ( 0,5 ) ;
Colore di riempimento ( { 1.0 , 0,5 , 0.0 } ) ;
Poligono ( [ 60 , 72 , 57 ] , [ 75 , 120 , 120 ] ) ;
) ;
Aspettare ( 1 ) ;
framebox <<
Aggiungi script grafico (
2 ,
Descrizione ( "Poligono blu" ) ,
Trasparenza ( 0,5 ) ;
Colore di riempimento ( { 0.0 , 0,5 , 1.0 } ) ;
Poligono ( [ 60 , 72 , 57 ] , [ 150 , 120 , 120 ] ) ;
) ;
Aspettare ( 1 ) ;
framebox << Rimuovi lo script grafico ( 1 ) ;
// Dopo aver rimosso il primo script grafico, il secondo è ora nella posizione 1 (anche se originariamente era assegnato alla posizione 2) . . .
Aspettare ( 1 ) ;
framebox << Rimuovi lo script grafico ( 1 ) ;
Inoltre, si prega di consultare: https://www.jmp.com/support/help/Adding_Scripts_to_Graphs.shtml