Cursore di intervallo per controllare l'intervallo dell'asse del graficoUn ciclo genera diversi costruttori di grafici senza un nome particolare. Volevo creare un dispositivo di scorrimento dell'intervallo che mi consentisse di modificare l'intervallo dell'asse X di TUTTI i grafici nel diario (che hanno tutti lo stesso intervallo) ma non sono sicuro di come farlo.
Re: Dispositivo di scorrimento dell'intervallo per controllare l'intervallo dell'asse del graficoEccezionale! E per farlo diventare un dispositivo di scorrimento dell'intervallo ho fatto quanto segue:
Nomi predefiniti qui (1);
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt:età < gb1 = dt << Costruttore di grafici(
Taglia (528, 448),
Mostra Pannello di controllo( 0 ),
Variabili (X(:età), Y(:altezza)),
Elementi( Punti( X, Y, Legenda( 5 ) ) )
);
gb2 = dt << Costruttore di grafici(
Taglia (528, 448),
Mostra Pannello di controllo( 0 ),
Variabili (X(:età), Y(:peso)),
Elementi( Punti( X, Y, Legenda( 5 ) ) )
);
slidervar = Report( gb1 )[axisbox( 1 )] << ottieni min;
slidervar2 = Report( gb1 )[axisbox( 1 )] << ottieni il massimo;
Nuova finestra( "Esempio",
Scatola del pannello ("Scatola del cursore",
Casella di riepilogo H(
rsb = Casella di scorrimento dell'intervallo (
Report( gb1 )[axisbox( 1 )] << ottieni minimo, Report( gb1 )[axisbox( 1 )] << ottieni massimo, slidervar, slidervar2,
(
Rapporto( gb1 )[axisbox( 1 )] << Min( slidervar );
Rapporto( gb1 )[axisbox( 1 )] << Max( slidervar2 );
Rapporto( gb2 )[axisbox( 1 )] << Min( slidervar );
Rapporto( gb2 )[axisbox( 1 )] << Max( slidervar2 );
);
)
)
)
);
E con ciò ho potuto fare ciò di cui avevo bisogno per la mia sceneggiatura! Jim, grazie mille!
Re: Dispositivo di scorrimento dell'intervallo per controllare l'intervallo dell'asse del graficoAvete capito bene.
Re: Dispositivo di scorrimento dell'intervallo per controllare l'intervallo dell'asse del graficoOk, quindi ho una funzione che crea i miei grafici.
Stai dicendo di creare una lista vuota come graphslist = {};
Quindi nella funzione,
chiama il costruttore di grafici una variabile come a = table << Generatore di grafici();
Quindi inserire in (graphslist, a);
È ciò che intendi?
Re: Dispositivo di scorrimento dell'intervallo per controllare l'intervallo dell'asse del graficobasta acquisire il puntatore a ciascun oggetto di visualizzazione in un elenco e quindi è possibile accedere a ciascuno di essi facendo riferimento a ciascuno tornando indietro nell'elenco.
Re: Dispositivo di scorrimento dell'intervallo per controllare l'intervallo dell'asse del graficoJim,
ma ho notato che hai nominato individualmente tutti i tuoi oggetti del generatore di grafici.
Come dicevo nella mia domanda, attualmente il mio programma funziona creandoli in un ciclo in modo che non vengano chiamati nomi di variabili. Per questo motivo non so come fare riferimento al Rapporto.
Re: Dispositivo di scorrimento dell'intervallo per controllare l'intervallo dell'asse del graficoIl modo più semplice per farlo sarebbe aprire un filtro dati globale e selezionare la variabile dell'asse X come variabile del filtro. Verrà impostato un dispositivo di scorrimento che ti consentirà di modificare l'intervallo.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt:age << modeling type( "continuous" );
gb1 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
gb2 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
dt << Data Filter(
Location( {780, 189} ),
Mode( Show( 1 ), Include( 1 ) ),
Add Filter( columns( :age ) )
);
Se vuoi sviluppare il tuo, puoi impostare uno Slider Box per modificare i valori Min e Max, puoi impostare qualcosa del genere:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt:age << modeling type( "continuous" );
gb1 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
gb2 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
slidervar = Report( gb1 )[axisbox( 1 )] << get min;
slidervar2 = Report( gb1 )[axisbox( 1 )] << get max;
New Window( "Example",
Panel Box( "Slider Box",
H List Box(
sb = Slider Box(
Report( gb1 )[axisbox( 1 )] << get min,
Report( gb1 )[axisbox( 1 )] << get max,
slidervar,
Report( gb1 )[axisbox( 1 )] << Min( slidervar );
Report( gb2 )[axisbox( 1 )] << Min( slidervar );
),
sb2 = Slider Box(
Report( gb1 )[axisbox( 1 )] << get min,
Report( gb1 )[axisbox( 1 )] << get max,
slidervar2,
Report( gb1 )[axisbox( 1 )] << Max( slidervar2 );
Report( gb2 )[axisbox( 1 )] << Max( slidervar2 );
)
)
)
);
Puoi anche aggiungere uno script grafico a ciascuno dei Costruttori di grafici, che rileva le modifiche nell'intervallo e nell'origine dell'AxisBox(1) e quindi, quando viene rilevata una modifica, copia le impostazioni dell'AxisBox(1) dal grafico in cui la modifica viene rilevato, a ciascuno degli altri grafici. Ovviamente questo è più complesso, tuttavia ha il vantaggio di non dover avere una finestra separata con uno slider al suo interno.