Re: Cuadro de contexto de filtro de datos anidados/múltiplesSupongo que ahí es donde estoy perdido. Parece que Bubble Plot depende de todas las fuentes. Tú puede en efecto coloque su " final" en un cuadro de fuente de filtro de datos en sí mismo, pero luego verá todos los no deseado datos, simplemente no seleccionados/atenuados.
Re: Cuadro de contexto de filtro de datos anidados/múltiplesDefinitivamente no puedo decir que sí, pero si observa la estructura del código que proporcioné, puedo imaginar que puedo expandirlo para respaldar su estructura.
Tomaría la muestra y vería si puede hacer que se bifurque a dos gráficos de filtrado diferentes en el segundo nivel de filtros.
Re: Cuadro de contexto de filtro de datos anidados/múltiples¿Puedes aplicar diferentes subfiltros a diferentes parcelas con este método? Parece que todas las parcelas recibirán los mismos filtros.
Necesito un solo filtro principal con una serie de subfiltros independientes (invisibles) aplicados a diferentes conjuntos de gráficos. Actualicé mi publicación original con un filtro comentado "dónde" para transmitir mejor esto.
Re: Cuadro de contexto de filtro de datos anidados/múltiplesAquí hay un ejemplo de una discusión que tuve sobre un filtro de 2 niveles.Es una expansión del ejemplo que proporcioné en mi última publicación.
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 ) )
)
)
)
);Re: Cuadro de contexto de filtro de datos anidados/múltiples¡Gracias Jim! A menos que esté malinterpretando/pasando por alto algo, esto solo está filtrando el segundo gráfico en función del primero. ¿Cómo filtro el segundo gráfico además del primero?
es decir Quiero que el segundo gráfico se filtre en función del primero, pero además, solo quiero un subconjunto de los datos del primer filtro.
Efectivamente, lo que quiero es agregar "Dónde (: ToolID == pTools [j]);" al gráfico de Variabilidad, pero si hago esto, ignora por completo el Cuadro de origen del filtro de datos (o en mi caso, el filtro de datos local). De hecho, pasé mucho tiempo tratando de averiguar qué estaba haciendo mal con el cuadro de origen del filtro de datos solo para darme cuenta de que funcionaba una vez que eliminé la línea anterior "dónde" de los gráficos de variabilidad.
Re: Cuadro de contexto de filtro de datos anidados/múltiplesCreo que entiendo lo que quieres.Aquí hay un ejemplo, tomado directamente del índice de secuencias de comandos
Ayuda==>Índice de secuencias de comandos==>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 )
)
)
)
)
);
En función de sus selecciones de "Hacer clic en" en un gráfico, filtra otro gráfico
Cuadro de contexto de filtro de datos anidados/múltiples::editar:: Agregó un comentario en el código e incluyó una captura de pantalla para ayudar a visualizar.
¿Es posible hacer cuadros de contexto de filtro anidados o generar algo que efectivamente haga lo mismo? Básicamente, quiero un conjunto de filtros principales que se apliquen a todas las parcelas en un informe. Los informes dentro de ese gráfico necesitan sus propios filtros particulares para limitar los datos que muestran.
Tengo un informe interactivo dispuesto así:
(1) Un cuadro de lista H dividido en dos columnas.
(A) La primera columna contiene un conjunto de filtros que se aplican a cualquier elemento de la segunda columna.
(B) La segunda columna contiene un cuadro de pestañas con varias pestañas para diferentes "tipos de herramientas".
(i) Cada pestaña contiene un cuadro de lista h con una columna de gráficos de variabilidad para cada "herramienta" de un tipo dado. Cada columna necesita su propio filtro para limitar qué "herramienta" muestra.
(a) Este filtro está codificado de forma rígida en función de una lista, pero los VarCharts deben actualizarse en función de los filtros en (A).
Lo que estoy encontrando es que si pongo un where() dentro del gráfico de variabilidad, ignora los filtros en (A). Luego intenté anidar cuadros de contexto de filtro, pero esto no parece funcionar. Aparecen los nuevos filtros, pero solo el filtro principal hace algo.
Intenté crear una versión reducida/anonimizada de mi código, por lo que puede haber algunos errores tipográficos:
myRootPath = "C:\Log_Testing\"; myLogPath = myRootPath; myReportPath = myRootPath || "Informe\"; miruta = miRutaRaíz || "Registros\"; // I herramientas para trazar // formato: ToolID iTools = {"i1", "i5"}; // P herramientas para trazar // formato: ToolID pTools = {"p1", "p2"}; Establecer directorio actual ( mypath ); mainDt = Open( myLogPath || "Log.jmp" ); Interactivo por lotes( 1 ); //Modo por lotes dt_name = mainDt << get name(); dt_path = myLogPath; mainDt << Borrar Seleccionar; filterContextBox = Cuadro de contexto de filtro de datos (); spcWin = Nueva ventana (dt_name || "_VarCharts", filterContextBox); filterBox = H List Box( mainDt << Filtro de datos( //Condicional, Local, Agregar filtro( columnas( :WW,
), Pantalla ( :WW, Pantalla de bloques ), Pantalla (
, Pantalla de bloques ), ), Modo ( Seleccionar ( 0 ), Mostrar ( 1 ), Incluir ( 1 ) ), ) ); filterContextBox << Agregar (filtrobox); filterBox << Agregar (tb = Tab Box ()); tb << Add( "P", hPTab = H Cuadro de lista() ); tb << Add( "I", hITab = H List Box() ); numPTools = N elementos (pTools); numITools = N elementos (iTools); //Crear diagramas P para( j = 1, j <= numPTools, j++, hPTab << Append( vToolBox = V List Box() ); vToolBox << Append( toolTab = Outline Box( pTools[j] ) ); ycol = "VariableName"; parseName = "Gráfico de variabilidad para" || ycol; toolTab << append( NewChart = Gráfico de variabilidad( Y( Column( ycol ) ), X( :WW,
), Max Iter ( 100 ), Conv Limit ( 0.00000001 ), Abscisas de integración numérica ( 128 ), Evaluaciones de funciones numéricas ( 65536 ), Tipo de análisis ( Nombre (" Elija el mejor análisis (EMS REML Bayesian) " ) ), Connect Cell Means ( 1 ), gráfico de desarrollo estándar ( 0 ), puntos alterados ( 0 ), etiquetas AIAG ( 0 ), recálculo automático ( 1 ),
/*Si la siguiente línea no está comentada, ignora el filtro local y solo usa este. Necesito ambos. */
Where( :IDHerramienta == pHerramientas[j] ); SendToReport( Dispatch( {}, "Indicador de variabilidad", 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" ) } ) ) ) ); );
Re: Cuadro de contexto de filtro de datos anidados/múltiplesHe estado jugando con el código, pero no he podido hacer que funcione de la manera que especificaste.
Lo siento, tal vez otro miembro de la comunidad tenga una idea.
Aquí hay un ejemplo en el que hay 2 rutas independientes tomadas de un único gráfico de selección... Creo que esto se acerca a lo que desea
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 ) )
)
)
)
)
//)
)
)
)
)
);Re: Cuadro de contexto de filtro de datos anidados/múltiples¡Gracias Jim! Se me había ocurrido algo similar. Estaba tratando de encontrar una manera de ocultar/reducir el tamaño de los puntos no seleccionados, pero no parece que sea una posibilidad.
Creo que también he llegado a una forma diferente de hacer esto por completo: usando "by()" y recorriendo cada ToolID usando un SendToGroup() separado. Entonces es un poco más complicado configurar los títulos, pero publicaré los resultados una vez que lo haya resuelto. ¡Espero que ayude a alguien en el futuro como lo han hecho todas tus publicaciones!Re: Cuadro de contexto de filtro de datos anidados/múltiplesHe adjuntado dos ejemplos de diseños similares a lo que describe:
SFCrimeNestedFilter.jsl demuestra cómo anidar el cuadro de contexto del filtro de datos para obtener un comportamiento en cascada/jerárquico en los filtros.Este enfoque funciona en JMP 10+, aunque la sintaxis que uso para Tab Box es JMP 13+.
SFCrimeFilterWithWhere.jsl reemplaza el filtro interno con una cláusula Where() para cada informe.Este tipo de diseño funciona en JMP 14 pero no funcionó en versiones anteriores.El problema es que el filtro usa la tabla completa, mientras que el informe usa una tabla de subconjuntos.
¡Espero que esto ayude!
Re: Cuadro de contexto de filtro de datos anidados/múltiplesEsto parece ser exactamente lo que estoy buscando! ¡Muchas gracias! Entonces, ¿parece que mi error fue usar cajas de origen?Re: Cuadro contextual de filtro de datos múltiples/anidadoEn los ejemplos de Jim, el cuadro de origen del filtro de datos es exactamente lo que se necesita para usar un gráfico JMP para filtrar otro.No vi un cuadro de origen del filtro de datos en su secuencia de comandos original; creo que el problema principal fue el uso de la cláusula Where() (tabla de subconjunto) con un filtro en la tabla principal.
El cuadro de origen del filtro de datos solo necesita usar una plataforma como filtro, porque a diferencia del objeto de filtro de datos integrado, no podemos inferir cuál debería ser el comportamiento del filtro.