Scollega i dati in Overlay Plot dalla tabella dei dati<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho esaminato la Guida allo scripting alla ricerca di un modo per "interrompere" il collegamento tra i dati visualizzati in un grafico di sovrapposizione e la sua tabella di dati, ma non riesco a scoprire come farlo.Il motivo è che desidero creare più OP con vari intervalli di date di dati specificati dall'utente.Sto utilizzando un filtro dati per selezionare gli intervalli di date che mi interessano in modo che gli OP risultanti possano ridimensionare automaticamente i dati dell'asse x e y in modo da non dover specificare questi parametri poiché cambiano drasticamente nel corso dell'anno.
Per semplificare il problema, ho incluso di seguito un codice simulato che mostra sostanzialmente ciò che sto cercando di ottenere: vale a dire, crea 2 OP che mostrano i dati per i mesi 1-3 E 5-7 e fai in modo che ciascuno di questi OP sia scollegato dai dati originali in modo che quando i dati selezionati dal filtro dati cambiano, i dati mostrati nell'OP non cambiano rispetto a quanto originariamente specificato.Eventuali suggerimenti su come realizzare questo sarebbe molto apprezzato.
Pulisci il registro();
dt = Open( "C:\Program Files\SAS\JMP\10\Samples\Data\Time Series\Raleigh Temps.JMP" );
sdata = 1;
datato = 3;
obj = dt << Filtro dati(
Cancellazione automatica ( 1 ),
Mostra finestra ( 0 ),
Aggiungi filtro(
colonne( :Nome( "Mese" ) ),
Dove(
:Name( "Mese" ) >= sdata & :Name( "Mese" ) <=
datato
)
),
Modalità( Mostra( 1 ), Includi( 1 ) )
);
obj << Chiudi;
Trama sovrapposta(
X( :Nome( "Mese" ) ),
Y( :Nome( "Temperatura" ) ),
Assi separati( 1 ),
Connetti tramite mancante( 1 ),
Punti di connessione( 1 ),
Invia a rapporto(
Spedizione(
{},
"101",
ScaleBox,
{Mostra griglia principale( 1 ), Etichette ruotate( "Automatico" )}
)
)
);
sdata = 5;
edato = 7;
obj = dt << Filtro dati(
Cancellazione automatica ( 1 ),
Mostra finestra ( 0 ),
Aggiungi filtro(
colonne( :Nome( "Mese" ) ),
Dove(
:Name( "Mese" ) >= sdata & :Name( "Mese" ) <=
datato
)
),
Modalità( Mostra( 1 ), Includi( 1 ) )
);
obj << Chiudi;
Trama sovrapposta(
X( :Nome( "Mese" ) ),
Y( :Nome( "Temperatura" ) ),
Assi separati( 1 ),
Connetti tramite mancante( 1 ),
Punti di connessione( 1 ),
Invia a rapporto(
Spedizione(
{},
"101",
ScaleBox,
{Mostra griglia principale( 1 ), Etichette ruotate( "Automatico" )}
)
)
);
Re: Scollegare i dati in Overlay Plot dalla tabella dei datiSe sei preoccupato per lo spazio, potresti pensare al pannello di controllo che Graph Builder mostra per impostazione predefinita, ma puoi disattivarlo con Mostra pannello di controllo (0).
E, se riesci a codificare le tue condizioni in una colonna, puoi utilizzare i ruoli Gruppo X e Gruppo Y per creare una visualizzazione abbastanza compatta.
Nell'esempio seguente creo una colonna che indica la dimensione dell'azienda per codificare le mie condizioni.
dt = Aprire ( "$DATI_ESEMPIO\Financial.jmp" ) ;
dt << Nuova Colonna ( "Dimensione aziendale" , Formula ( Se ( : Nome ( "#emp" ) < 10000 , "Piccolo" , "Grande" ) ) ) ;
dt << Costruttore di grafici (
Misurare ( 638 , 770 ) ,
Mostra pannello di controllo ( 0 ) ,
Variabili (
X ( : Nome ( "Attività($Mil.)" ) ) ,
Y ( : Nome ( "Vendite (milioni di $)" ) ) ,
Gruppo X ( : Dimensione aziendale ) ,
Gruppo Y ( : Tipo )
) ,
Elementi ( Punti ( X , Y , Leggenda ( 1 ) ) , Più liscio ( X , Y , Leggenda ( 2 ) ) )
) ;
Re: Scollegare i dati in Overlay Plot dalla tabella dei datiGrazie Jeff per il tuo aiuto su questo.Ho apprezzato il suggerimento di Graph Builder.Questo probabilmente non funzionerà nel mio caso particolare poiché ho a che fare con una matrice di visualizzazione grafica di 2 colonne per 6 righe e l'overhead di Graph Builder occupa troppo spazio.Tuttavia, è bello vedere questo esempio per grafici futuri che non sono così grandi e in cui sarebbe utile disporre di alcune funzionalità interattive.
Re: Scollegare i dati in Overlay Plot dalla tabella dei datiIn JMP 10 è possibile utilizzare un filtro dati locale che consente di filtrare senza alterare la tabella dati originale.
Suggerirei anche di utilizzare Graph Builder invece di Overlay Plot.
Ecco un esempio:
dt = Aprire ( "$SAMPLE_DATA\Time Series\Raleigh Temps.JMP" ) ;
Nuova finestra ( "La mia finestra" ,
Casella di riepilogo V (
dt << Costruttore di grafici (
Variabili ( X ( : Nome ( "Mese anno" ) ) , Y ( : Temperatura ) ) ,
Elementi ( Linea ( X , Y , Leggenda ( 4 ) , Ordine di riga ( 0 ) , Statistica riassuntiva ( "Significare" ) ) ) ,
Filtro dati locali (
Posizione ( { 207 , 385 } ) ,
Aggiungi filtro ( colonne ( : Anno ) , Dove ( : Anno >= 1980 & : Anno <= 1982 ) ) ,
Modalità ( Selezionare ( 0 ) , Spettacolo ( 1 ) , Includere ( 1 ) )
)
) ;
dt << Costruttore di grafici (
Misurare ( 570 , 518 ) ,
Variabili ( X ( : Nome ( "Mese anno" ) ) , Y ( : Temperatura ) ) ,
Elementi ( Linea ( X , Y , Leggenda ( 4 ) , Ordine di riga ( 0 ) , Statistica riassuntiva ( "Significare" ) ) ) ,
Filtro dati locali (
Posizione ( { 207 , 385 } ) ,
Aggiungi filtro ( colonne ( : Anno ) , Dove ( : Anno >= 1982 & : Anno <= 1990 ) ) ,
Modalità ( Selezionare ( 0 ) , Spettacolo ( 1 ) , Includere ( 1 ) )
)
) ;
)
) ;
Re: Scollegare i dati in Overlay Plot dalla tabella dei datiO usando l'idea Nuova finestra:
dt = Apri( "$DATI_CAMPIONE/Fitness.jmp" );
Nuova finestra( "La mia finestra",
Riquadro Contorno( "Il mio Riquadro Contorno",
Casella di riepilogo V(
io = 9;
ciao = 11;
op1 = Grafico sovrapposto(
X( :Runtime ),
Y( :Ossi ),
Dove( :Runtime >= basso & :Runtime <= alto )
);,
io = 10;
ciao = 12;
op2 = Grafico sovrapposto(
X( :Runtime ),
Y( :Ossi ),
Dove( :Runtime >= basso & :Runtime <= alto )
);
)
)
);
Re: Scollegare i dati in Overlay Plot dalla tabella dei datiEcco una possibilità usando l'idea del diario.
dt = Apri( "$DATI_CAMPIONE/Fitness.jmp" );
io = 9;
ciao = 11;
op1 = Grafico sovrapposto(
X( :Runtime ),
Y( :Ossi ),
Dove( :Runtime >= basso & :Runtime <= alto )
);
report(op1)<
jrn = giornale corrente();
io = 10;
ciao = 12;
op2 = Grafico sovrapposto(
X( :Runtime ),
Y( :Ossi ),
Dove( :Runtime >= basso & :Runtime <= alto )
);
jrn << append(report(op2));
Re: Scollegare i dati in Overlay Plot dalla tabella dei datiGrazie gente per i suggerimenti.Entrambi sono approcci interessanti al problema.Tuttavia, nessuno dei due funziona per la mia applicazione specifica poiché desidero creare più OP in una singola finestra VListBox (mi dispiace, non ero chiaro a riguardo nel mio post originale).Non riesco a capire come far funzionare nessuno dei tuoi approcci per farlo.Qualche idea?
Nuova finestra(
Casella di riepilogo V(
Op1 = Trama sovrapposta(.....),
Op1 = Trama sovrapposta(.....)
)
);
Re: Scollegare i dati in Overlay Plot dalla tabella dei datiQuesto esempio può fornire una prospettiva leggermente diversa.
dt = Apri( "$DATI_CAMPIONE/Fitness.jmp" );
io = 9;
ciao = 11;
Trama sovrapposta(
X( :Runtime ),
Y( :Ossi ),
Dove( :Runtime >= basso & :Runtime <= alto )
);
io = 10;
ciao = 12;
Trama sovrapposta(
X( :Runtime ),
Y( :Ossi ),
Dove( :Runtime >= basso & :Runtime <= alto )
);
Re: Scollegare i dati in Overlay Plot dalla tabella dei datiCorreggimi se sbaglio, ma non credo sia possibile interrompere il collegamento tra una piattaforma e la tabella dei dati. La trama deve essere spostata fuori dalla piattaforma, ad esempio in un diario o in una nuova finestra.
In questo esempio vengono utilizzati entrambi i metodi. I due grafici sovrapposti filtrati vengono entrambi inviati allo stesso giornale oa singole finestre.
Pulisci il registro () ;
dt = Aprire ( "$SAMPLE_DATA\Time Series\Raleigh Temps.JMP" ) ;
// Espressione filtro dati
espressione_filtro = Espr (
ogg = dt << Filtro dati (
Cancellazione automatica ( 1 ) ,
Mostra finestra ( 0 ) ,
Aggiungi filtro (
colonne ( : Nome ( "Mese" ) ) ,
Dove ( : Nome ( "Mese" ) >= data & : Nome ( "Mese" ) <= datato )
) ,
Modalità ( Spettacolo ( 1 ) , Includere ( 1 ) )
) ;
ogg << Vicino ;
) ;
// Trama sovrapposta
sovrapposizione = Espr (
operazione = Trama sovrapposta (
X ( : Nome ( "Mese" ) ) ,
Y ( : Nome ( "Temperatura" ) ) ,
Ricalcolo automatico ( 0 ) ,
Assi separati ( 1 ) ,
Connetti attraverso la mancanza ( 1 ) ,
Connetti punti ( 1 ) ,
SendToReport ( Spedizione ( {} , "101" , ScaleBox , { Mostra griglia principale ( 1 ) , Etichette ruotate ( "Automatico" )} ) ) ,
invisibile
)
) ;
// Prima trama
data = 1 ; datato = 3 ; espressione_filtro ; sovrapposizione ;
// Nuova finestra...
nw = Nuova finestra ( "Mese " || Car ( data ) || "-" || Car ( datato ) , Rapporto ( operazione )[ 1 ] ) ;
// o Diario
operazione << rivista ;
// Seconda trama
data = 5 ; datato = 7 ; espressione_filtro ; sovrapposizione ;
nw = Nuova finestra ( "Mese " || Car ( data ) || "-" || Car ( datato ) , Rapporto ( operazione )[ 1 ] ) ;
operazione << rivista ;