Selettore di colonne: aggiungi/rimuovi dinamicamente le linee di riferimentoCiao,
Ho una piattaforma di distribuzione che utilizza un commutatore di colonne popolato con colonne da una variabile di elenco. Ognuna di queste colonne rappresenta un parametro di qualità diverso e quindi ha limiti diversi raccolti da una query SQL.
Esiste un modo per aggiungere dinamicamente linee di riferimento alla piattaforma di distribuzione quando il commutatore di colonne cambia colonne? In questo momento, ho un SendToReport in esecuzione in un ciclo per ogni elemento, ma finisce con le righe di riferimento per tutte le colonne aggiunte contemporaneamente, anziché solo le due necessarie per ciascuna colonna.
Un modo semplice per farlo sarebbe se il commutatore di colonna supportasse uno script "al cambio di colonna": potrei quindi rimuovere le righe di riferimento precedenti e aggiungerne di nuove ogni volta che cambia. Non sono riuscito a trovare alcuna informazione sull'indice di scripting per verificare se qualcosa di simile è supportato.
Versione JMP: 14
has_limits = {"item 1", "item 2", "item 3"};
dist = dt << Distribution(
Continuous Distribution( Column( "item 1" ), Horizontal Layout( 1 ), Always use column properties( 1 ), Vertical( 0 ), Outlier Box Plot( 0 ) ),
Column Switcher( "item 1", has_limits )
);
For( n = 1, n <= N Items( has_limits ), n++,
tempUCL = Col Max( Column( dt, has_limits[n] || "_UCL" ) );
tempLCL = Col Max( Column( dt, has_limits[n] || "_LCL" ) );
Eval(
Eval Expr(
dist << SendToReport(
Dispatch(
{Expr( has_limits[n] )},
"1",
ScaleBox,
{Add Ref Line( Expr( tempUCL ), "Dashed", "Medium Dark Red", "UCL", 1 ), Add Ref Line(
Expr( tempLCL ),
"Dashed",
"Medium Dark Red",
"LCL",
1
)}
)
)
)
);
); Automazione e scriptingRi: Commutatore di colonne: aggiungi/rimuovi dinamicamente le linee di riferimentoSembra che il gestore del cambio di colonna non sia stato aggiunto fino a JMP 16.

Ri: Commutatore di colonne: aggiungi/rimuovi dinamicamente le linee di riferimentoEcco uno script che ti porta parzialmente lì.Per qualche motivo, rimuove i valori Axis, ma se puoi provarlo sui tuoi dati, potresti riuscire a capire come farlo funzionare correttamente.Il codice è stato sviluppato utilizzando JMP 14
names default to here(1);
dt = open("$SAMPLE_DATA/blood pressure.jmp");
has_limits = {"bp 8m", "bp 12m", "bp 6m"};
for(i=1,i<=nitems(has_limits),i++,
new column(has_limits[i] || "_UCL", values(matrix(quantile(.75,column(has_limits[i])<<GET values=""></GET>Ri: Commutatore di colonne: aggiungi/rimuovi dinamicamente le linee di riferimentoGrazie per questo. Non ho ancora capito i valori degli assi mancanti, è molto strano (mostra anche un cursore di "caricamento") ma è almeno un passo nella giusta direzione.
Ri: Commutatore di colonne: aggiungi/rimuovi dinamicamente le linee di riferimentoUna soluzione potrebbe essere quella di eseguire il JSL, quindi andare al triangolo rosso nella finestra di output del report e selezionare Salva script.Salvarlo in una finestra di script e quindi eseguire lo script.I miei test mostrano che il codice creato da JMP presenta le etichette X Azis mancanti.
Ho segnalato il bug al supporto JMP.
Ri: Commutatore di colonne: aggiungi/rimuovi dinamicamente le linee di riferimentoUn'altra soluzione alternativa che sembra funzionare è aggiungere il riempimento (forse qualcosa viene spinto sopra l'axisbox?)

o abilitare i segni di graduazione all'interno della cornice del grafico dalle impostazioni degli assi, anche se questo rende il grafico un po' strano e penso che potresti voler abilitare anche le linee della griglia

