Ri: Casella contestuale filtro dati nidificato/multipliImmagino che sia lì che mi sono perso. Sembra che il Bubble Plot dipenda da tutti quelli di origine. Voi può in effetti Inserisci la tua " final" nella stessa casella di origine del filtro dati, ma poi vedrai tutti i file indesiderato dati, appena deselezionati/disattivati.
Ri: Casella contestuale filtro dati nidificato/multipliNon posso dire di sì in modo definitivo, ma se guardi la struttura del codice che ho fornito, posso immaginare di poterlo espandere per supportare la tua struttura.
Vorrei prendere il campione e vedere se è possibile farlo ramificare su due diversi grafici di filtraggio al secondo livello di filtri.
Ri: Casella contestuale filtro dati nidificato/multipliÈ possibile applicare diversi filtri secondari a diversi appezzamenti con questo metodo? Sembra che tutte le trame riceveranno gli stessi filtri.
Ho bisogno di un unico filtro primario con una serie di filtri secondari indipendenti (invisibili) applicati a diversi insiemi di grafici. Ho aggiornato il mio post originale con un filtro "dove" commentato per trasmetterlo meglio.
Ri: Casella contestuale filtro dati nidificato/multipliEcco un esempio da una discussione che ho avuto riguardo a un filtro a 2 livelli.È un'espansione dell'esempio che ho fornito nel mio ultimo post.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :age ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
Data Filter Source Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :sex ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} )
)
)
)
)
),
Platform(
Current Data Table(),
Bubble Plot( X( :weight ), Y( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
)
)
);Ri: Casella contestuale filtro dati nidificato/multipliGrazie Jim! A meno che non stia fraintendendo/trascurando qualcosa, questo sta solo filtrando il secondo grafico in base al primo. Come faccio a filtrare il secondo grafico oltre al primo?
cioè Voglio che il secondo grafico venga filtrato in base al primo, ma in aggiunta voglio solo un sottoinsieme dei dati nel primo filtro.
In effetti, quello che voglio è aggiungere "Where( :ToolID == pTools[j] );" al grafico di variabilità, ma se lo faccio, ignora completamente la casella di origine del filtro dati (o nel mio caso il filtro dati locale). In realtà ho passato molto tempo a cercare di capire cosa stavo facendo di sbagliato con la casella di origine del filtro dati solo per rendermi conto che funzionava una volta rimossa la riga "dove" sopra dai grafici di variabilità.
Ri: Casella contestuale filtro dati nidificato/multipliCredo di aver capito cosa vuoi.Ecco un esempio, tratto direttamente dallo Scripting Index
Aiuto==>Indice script==>DataFilterSourceBox
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Selection Filter",
Data Filter Context Box(
H List Box(
dfsb =
Data Filter Source Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :age ) ),
Elements(
Bar( X, Legend( 3 ) )
),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "Filter" )}
)
)
)
),
Platform(
Current Data Table(),
Bubble Plot(
X( :weight ),
Y( :height ),
Sizes( :age ),
Title Position( 0, 0 )
)
)
)
)
);
In base alle selezioni "Cliccate su" in un grafico, filtra un altro grafico
Casella di contesto filtro dati nidificati/multipli::edit:: Aggiunto un commento nel codice e incluso uno screenshot per facilitare la visualizzazione.
È possibile creare caselle di contesto del filtro nidificate o generare qualcosa che faccia effettivamente la stessa cosa? Fondamentalmente voglio una serie di filtri principali che si applicano a tutti i grafici in un rapporto. I report all'interno di quel grafico necessitano di propri filtri particolari per limitare i dati che visualizzano.
Ho un rapporto interattivo disposto in questo modo:
(1) Una casella di riepilogo H divisa in due colonne.
(A) La prima colonna contiene una serie di filtri che si applicano a qualsiasi cosa nella seconda colonna.
(B) La seconda colonna contiene una scheda con più schede per diversi "tipi di strumenti".
(i) Ogni scheda contiene una casella di riepilogo h con una colonna di grafici di variabilità per ogni "strumento" di un dato tipo. Ogni colonna necessita del proprio filtro per limitare lo "strumento" visualizzato.
(a) Questo filtro è hardcoded basato su un elenco, ma i VarChart devono essere aggiornati in base ai filtri in (A).
Quello che sto scoprendo è che se inserisco un where() all'interno del grafico di variabilità, ignora i filtri in (A). Ho quindi provato a nidificare le caselle di contesto del filtro, ma non sembra funzionare. Vengono visualizzati i nuovi filtri, ma solo il filtro principale in realtà fa qualcosa.
Ho tentato di creare una versione ridotta/anonimata del mio codice, quindi potrebbero esserci degli errori di battitura:
myRootPath = "C:\Log_Testing\"; mioLogPath = mioRootPath; myReportPath = myRootPath || "Rapporto\"; miopercorso = mioPercorsoRoot || "Registri\"; // Strumenti da tracciare // formato: ToolID iTools = {"i1", "i5"}; // P strumenti da tracciare // formato: ToolID pTools = {"p1", "p2"}; Imposta la directory corrente ( mypath ); mainDt = Open( mioPercorsoLog || "Log.jmp" ); Batch interattivo( 1 ); //Modalità batch dt_name = mainDt << get name(); dt_path = mioPercorsoLog; mainDt << Cancella Seleziona; filterContextBox = Casella contesto filtro dati(); spcWin = Nuova finestra( dt_name || "_VarCharts", filterContextBox ); filterBox = H List Box( mainDt << Filtro dati( //Condizionale, Locale, Aggiungi filtro( colonne( :WW,
), Display( :WW, Blocks Display ), Display(
, Blocks Display ), ), Mode( Select( 0 ), Show( 1 ), Include( 1 ) ), ) ); filterContextBox << Append( filterbox ); filterBox << Append( tb = Tab Box() ); tb << Add( "P", hPTab = H List Box() ); tb << Add( "I", hITab = H List Box() ); numPTools = N elementi( pTools ); numITools = N elementi (iTools); //Crea P Plot For( j = 1, j <= numPTools, j++, hPTab << Append( vToolBox = V List Box() ); vToolBox << Append( toolTab = Outline Box( pTools[j] ) ); ycol = "VariableName"; parseName = "Grafico di variabilità per " || ycol; toolTab << append( NewChart = Grafico di variabilità( Y( Column( ycol ) ), X( :WW,
), Max Iter( 100 ), Conv Limit( 0.00000001 ), Number Integration Ascissas( 128 ), Number Function Evals( 65536 ), Analysis Type( Name( "Scegliere best analysis (EMS REML Bayesian)" ) ), Connect Cell Means( 1 ), Std Dev Chart( 0 ), Punti Jittered( 0 ), Etichette AIAG( 0 ), Ricalcolo automatico( 1 ),
/*Se la riga successiva non è commentata, ignora il filtro locale e usa solo questo. Ho bisogno di entrambi. */
Where( :ToolID == pTools[j] ); SendToReport( Dispatch( {}, "Variability Gauge", OutlineBox, {Set Title( "" )} ), Dispatch( {parseName}, "2", ScaleBox( 2 ), {Format( "Fixed Dec", 4, 0 ), Min( 0 )} ), Dispatch( {parseName}, "Group Means", StringColBox, {Visibility( "Collapse" )} ), Dispatch( {parseName}, "", PlotColBox, {Visibility( "Collapse" ) } ) ) ) ); );
Oggetto: Casella di contesto del filtro dati nidificato/multiploHo giocato con il codice, ma non sono riuscito a farlo funzionare nel modo che hai specificato.
Spiacenti, forse un altro membro della community ha un'idea.
Ecco un esempio in cui ci sono 2 percorsi indipendenti presi da un singolo grafico di selezione..... Penso che questo sia vicino a quello che vuoi
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Potential",
Character,
"Nominal",
Set Values(
{"1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2",
"1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2"}
)
);
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :age ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
//Data Filter Context Box(
V List Box(
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Potential ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
Platform(
Current Data Table(),
Bubble Plot( Y( :weight ), X( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
),
),
Data Filter Source Box(
H List Box(
Graph Builder(
Size( 208, 207 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :sex ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Filter" )} ) )
),
Platform(
Current Data Table(),
Bubble Plot( X( :weight ), Y( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
)
)
)
//)
)
)
)
)
);Oggetto: Casella di contesto del filtro dati nidificato/multiploGrazie Jim! Avevo pensato a qualcosa di simile. Stavo cercando di trovare un modo per nascondere/rimpicciolire i punti non selezionati ma non sembra che sia una possibilità.
Penso di essere anche arrivato a un modo diverso di farlo: usando "by ()" e scorrendo ogni ToolID usando un SendToGroup () separato. Allora è un po' più complicato impostare i titoli, ma posterò i risultati una volta che l'avrò capito. Spero che aiuti qualcuno in futuro come hanno fatto tutti i tuoi post!Oggetto: Casella di contesto del filtro dati nidificato/multiploHo allegato due esempi di layout simili a quello che descrivi:
SFCrimeNestedFilter.jsl mostra come nidificare la casella di contesto del filtro dati per ottenere un comportamento a cascata/gerarchico nei filtri.Questo approccio funziona in JMP 10+, sebbene la sintassi che utilizzo per Tab Box sia JMP 13+.
SFCrimeFilterWithWhere.jsl sostituisce il filtro interno con una clausola Where() per ogni report.Questo tipo di layout funziona in JMP 14 ma non nelle versioni precedenti.Il problema è che il filtro utilizza la tabella completa, mentre il report utilizza una tabella di sottoinsieme.
Spero che aiuti!
Oggetto: Casella di contesto del filtro dati nidificato/multiploQuesto sembra essere esattamente quello che sto cercando! Grazie mille! Quindi sembra che il mio errore sia stato usare i box dei sorgenti?Ri: Casella di contesto del filtro dati nidificati/multipliNegli esempi di Jim, il riquadro Origine filtro dati è esattamente ciò che serve per utilizzare un grafico JMP per filtrarne un altro.Non ho visto una casella di origine del filtro dati nello script originale: penso che il problema principale fosse l'uso della clausola Where() (tabella dei sottoinsiemi) con un filtro sulla tabella principale.
Il riquadro Origine filtro dati è necessario solo per utilizzare una piattaforma come filtro, perché a differenza dell'oggetto Filtro dati integrato non possiamo dedurre quale dovrebbe essere il comportamento del filtro.