<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Il Costruttore di grafici funziona correttamente con il filtro dati regolando correttamente i punti tracciati quando il dispositivo di scorrimento del filtro dati viene spostato. Inoltre, i valori delle statistiche che utilizzano la casella didascalia vengono regolati con il dispositivo di scorrimento Filtro dati come previsto. Fin qui tutto bene. Quindi volevo tracciare la media di una colonna usando "Personalizza" e "Funzione Y". Quanto segue è lo script estratto:
Aggiungi script grafico(
3,
Descrizione( "Script" ),
Funzione Y( Col Media( :_columnexample_ ), x )
)
La linea media desiderata viene tracciata con successo. Tuttavia, la linea tracciata non risponde al dispositivo di scorrimento Filtro dati.
Come posso tracciare la colonna media che funziona con il filtro dati?
Grazie Ian per aver risposto. Ho studiato la tua sceneggiatura e vedo che funziona. Nel mio caso, tuttavia, devo mantenere il filtro dei dati globale in modo che molti grafici possano essere interessati contemporaneamente e non ci sono ancora riuscito.
Sulla base del pensiero di Jim, ecco un modo (con il filtro dati locale):
NamesDefaultToHere ( 1 ) ;
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
// Generatore di grafici
GB = dt << Costruttore di grafici (
Mostra pannello di controllo ( 0 ) ,
Blocca le scale ( 1 ) ,
Variabili ( X ( : peso ) , Y ( : altezza ) ) ,
Elementi ( Punti ( X , Y , Leggenda ( 6 ) ) , Linea di vestibilità ( X , Y , Leggenda ( 8 ) ) ) ,
) ;
// Ottieni un riferimento al report
gbReport = GB << Rapporto ;
// Aggiungi un filtro dati locale
ldf = GB << Filtro dati locali ( Aggiungi filtro ( colonne ( : sesso ) ) ) ;
// Funzione di gestione dello stato di riga che aggiunge una linea orizzontale a Graph Builder alla media della corrente
// selezione nel filtro dati locale
addMeanYLine =
Funzione ({ X } , { Locale predefinito } ,
// Ottieni le righe corrispondenti alla selezione corrente
righe = ldf << getFilteredRows ;
// Ottieni il valore medio richiesto
mv = Significare (( Colonna ( dt , "altezza" ) << getValues )[ righe ]) ;
// Aggiunge lo script grafico alla casella di visualizzazione del Costruttore di grafici. . .
gFrame = gbReport << XPat ( "//FrameBox" ) ;
// Prova a rimuovere uno script grafico che potrebbe essere già presente
Provare ( Inviare ( gFrame [ 1 ] , RimuoviGraphicsScript ( 1 ))) ;
// Espressione che aggiungerà lo script grafico richiesto
ags = Espr ( Inviare ( gFrame [ 1 ] , AggiungiGraphicsScript ( Colore penna ( "Rosso" ) ; Linea H ( da definire )))) ;
// 'Bake in' valore medio corrente
SostituisciInto ( ags , Espr ( da definire ) , mv ) ;
// Aggiungi lo script grafico
ags ;
) ;
// Assegna il gestore dello stato della riga alla casella di visualizzazione del filtro dati locale
sh = gbReport [ OutlineBox ( 1 )] << MakeRowStateHandler ( addMeanYLine ) ;
Grazie per la risposta.
Ecco lo script per il filtro dati, non è locale:
Tabella dati corrente() <
Posizione( {325, 212} ),
Modalità( Mostra( 1 ), Includi( 1 ) ),
Aggiungi filtro ( colonne ( : Bandmeter ), Where ( : Bandmeter >= -100 & : Bandmeter <= -50 ) )
);?
Immagino che il problema risieda nell'istruzione Include (1), forse dovrebbe essere Exclude. La mia prova gratuita di 30 giorni è appena terminata, quindi dovrò aspettare per ottenere una licenza per testarla.
Alcuni valori iniziali arbitrari per il filtro sono inclusi semplicemente perché non ho ancora capito come includere tutte le righe della tabella di dati corrente. Sembrava essere un problema minore al momento, ma presumo anche che non sia la causa della difficoltà nell'uso del filtro dati con la funzione Y.
La soluzione dipenderà probabilmente dall'utilizzo di un filtro dati o di un filtro dati locale.Se stai utilizzando un filtro dati, puoi applicare un gestore dello stato di riga alla tabella dati, che ridisegnerà la funzione Y.Se si tratta di un filtro dati locale, la chiave sarà trovare cosa viene modificato nel grafico dal filtro su cui è possibile eseguire il trigger, per ridisegnare la funzione Y.
Se puoi fornire maggiori dettagli sul filtro dati che stai utilizzando, potrei essere in grado di fornire più di una soluzione