Commutatore di colonna, filtro dati locali e linea di riferimento aggiornati automaticamenteHo creato un grafico a barre utilizzando il generatore di grafici e desidero applicare un filtro dati locale, un selettore di colonne e una linea di riferimento al grafico. È possibile cambiare automaticamente il filtro dei dati locali e la riga di riferimento a seconda della colonna selezionata. Al momento la mia linea di riferimento appena completata scompare quando cambio tra le colonne. Ho 2 possibili colonne da selezionare, Cpk e Ppk. Voglio includere una linea di riferimento a Cpk = 1.333 e Ppk = 1.333, rispettiva delle quali è attualmente visualizzata. Allo stesso modo, desidero aggiungere un filtro dati locale per mostrare solo i valori compresi tra il valore min Cpk/Ppk e un valore massimo di 1,5 a seconda della colonna visualizzata. È possibile farlo nel semplice generatore di grafici tramite script o dovrò cercare in una dashboard/applicazione? Questo è quello che ho attualmente:
Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Feature ID, Order By( :Cpk , Ascending, Order Statistic( "Mean" ) ) ),
Y( :Cpk )
),
Column Switcher( :Cpk , {: Cpk , :Ppk }),
Elements( Bar( X, Y, Legend( 4 ) ) ),
Local Data Filter(
Add Filter( columns( :Cpk ), Where( :Cpk >= floor(Col Min(:Cpk )) & :Cpk <= 1.5 ) )
),
SendToReport(
Dispatch(
{},
"Cpk ",
ScaleBox,
{Add Ref Line( 1.333, "Solid", "Red", "", 3 )}
),
)
);GraficaScriptingOggetto: cambio di colonna, filtro dati locali e aggiornamento automatico della linea di riferimentoOk grazie non preoccuparti!
Sto utilizzando il software aziendale, quindi non credo che sarò in grado di eseguire l'aggiornamento, quindi dovrò solo pensare a un modo diverso di visualizzare i dati. Presumo che mi imbatterò in un problema simile se provo a modificare solo i limiti dell'asse in base alla colonna selezionata, piuttosto che provare ad aggiornare il filtro dati locale? SalutiOggetto: cambio di colonna, filtro dati locali e aggiornamento automatico della linea di riferimentoIl primo problema con l'esecuzione dello script in JMP 13 è che ciò che viene restituito dal file
ColSwitcher << ottieni corrente
non è una stringa letterale, quindi deve essere modificata in
char( ColSwitcher << ottieni corrente )
ma quando lo si fa, JMP entra in un ciclo infinito
Credo che questo fosse un errore noto ed è correlato al momento in cui lo script Aggiungi grafica viene chiamato dalla modifica del selettore di colonna.
Ho provato un sacco di cose, ma non sono riuscito a trovare una soluzione. L'aggiornamento a 15 è l'unica opzione che sono sicuro risolverà il problema.Oggetto: cambio di colonna, filtro dati locali e aggiornamento automatico della linea di riferimentoCIAO,
Quando l'ho copiato in uno script, non sembra funzionare correttamente. Il grafico presenta un messaggio di errore che indica "Lo script grafico ha riportato errori nel registro". E l'errore segnalato nel registro indica "Nome non risolto: peso{21} in accesso o valutazione di 'peso' , peso/*###*/". Sto usando JMP 13, non so se questo potrebbe essere un problema?
Sono riuscito ad aggiungere una linea di riferimento che rimane a 1.333 indipendentemente da ciò che viene visualizzato sull'asse y come segue:
obj = dt_sum << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Feature ID, Order By( :Cpk, Ascending, Order Statistic( "Mean" ) ) ),
Y( :Cpk)
),
Column Switcher( :Cpk, {: Cpk, :Ppk}),
Elements( Bar( X, Y, Legend( 4 ) ) ),
);
Report(obj)[FrameBox(1)] <<
Add Graphics Script(
1, Description( "Pen Script"),
Pen Color("red");
Pen Size(3);
Y Function(1.333, Feature ID);
);Tuttavia non sono ancora sicuro di come collegare il commutatore di colonna con un filtro dati locale in modo che solo i valori al di sotto di un determinato valore y vengano visualizzati e aggiornati quando la colonna viene cambiata.
Oggetto: cambio di colonna, filtro dati locali e aggiornamento automatico della linea di riferimentoSì, è possibile fare quello che vuoi.Qui c'è un semplice esempio
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb = dt << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
ColSwitcher = gb << Column switcher( :weight, {:weight, :height} );
Report( gb )[framebox( 1 )] << add graphics script(
theCol = ColSwitcher << Get Current;
If(
theCol == "weight",
Report( gb )[AxisBox( 2 )] << add ref line(
Col Mean( :weight ),
"solid",
red,
"Mean",
2
),
theCol == "height",
Report( gb )[AxisBox( 2 )] << add ref line(
Col Mean( :height ),
"solid",
red,
"Mean",
2
)
);
);