Todos,
Tengo un problema que probablemente se origina por la falta de comprensión de cómo funcionan las cosas en JSL.
Asi que aqui esta:
Tengo una aplicación que traza algunos gráficos a través de Graph Builder y los coloca en una nueva ventana que tiene varias pestañas.
No, tengo que hacer lo siguiente:
- Generador de gráficos de trazado:
GrBld = Graph Builder(
blah-blah-blah
);
- Entonces tengo que obtener una referencia del informe:
reportGrBld = GrBld<<Report();
- Entonces solo puedo comenzar a ensamblar mi ventana con pestañas:
tabPlot1 = Tab Page Box("GraphBuilder plot", reportGrBld);
tabPlot2 = Tab Page Box("Something else", someOtherReport);
tabPlot3...
...
tabbedResults = Tab Box(tabPlot1, tabPlot2, tabPlot3, tabPlot4);
New Window("Results", tabbedResults);
Todo funciona bien, con una excepción: las tramas se vuelven estáticas. Por lo tanto, no puedo usar todas las ventajas de GraphBuilder ni de ninguna otra plataforma de gráficos; es decir, si hago clic en un elemento de Legend, no resaltará esos puntos en el gráfico. Si este informe es Tabular, la tabla será estática, no se mostrarán todos los filtros que he creado, etc.
Puedo hacer clic en el triángulo rojo y seleccionar "volver a ejecutar el script" y todo eso aparece, pero no en la ventana con pestañas ensamblada.
Ahora, si solo digo:
tabPlot1 = Tab Page Box("GraphBuilder plot", GrBld);
tabPlot2 = Tab Page Box("Something else", someOtherReport);
tabPlot3...
...
tabbedResults = Tab Box(tabPlot1, tabPlot2, tabPlot3, tabPlot4);
New Window("Results", tabbedResults);
no funcionará
Pregunta: ¿cómo construir una ventana con pestañas con todos sus resultados y tener un GraphBuilder en vivo o cualquier otra plataforma con todas sus funciones interactivas, no una versión de informe estática y "muerta"?
Agregaré - ...añadir hacer cosas diferentes y estar en vivo. Anteriormente estaba en vivo y no podía agregarlo, o estaba "informado", podía agregarlo, pero no estaba en vivo.
Parece que la clave era usar esto:
GrBld = dt1 << Graph Builder(nada-nada-nada);
que produciría un tipo diferente de objeto (¿caja de presentación?). Al menos las palabras "Graph Builder" cambiaron de color y ahora puedo agregar GrBld a diferentes cosas.
No desea utilizar Report() en este caso. Considero que Report es útil cuando necesita una referencia a la salida de una plataforma para poder extraer los resultados que se muestran (a través de secuencias de comandos de displaybox). Esto se ve rápidamente en el siguiente ejemplo.
Tenga en cuenta que tanto biv como bivRpt producen resultados, pero son tipos de objetos diferentes. biv es "Bivariado []" y bivRpt es "DisplayBox"
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );<BR />
biv = Bivariate( Y( :weight ), X( :height ), Fit Line );<BR />
<BR />biv << LocalDataFilter(<BR /><BR /> Add Filter(<BR /><BR /> columns( :age, :sex ),<BR /><BR /> Where( :age == {13, 14, 15, 16} ),<BR /><BR /> Where( :sex == "M" ),<BR /><BR /> Display( :age, Size( 160, 90 ), List Display )<BR /><BR /> )<BR /><BR />);<BR /><BR /><BR /><BR />
bivRpt = Report(
Bivariate( Y( :weight ), X( :height ), Fit Line )
);<BR /><BR /><BR /><BR /><BR />bivRpt << showTreeStructure;<BR /><BR /><BR />NewWindow("Biv's Report", bivRpt);<BR />
Para lo que quiere hacer, que es la disposición personalizada de gráficos y análisis en vivo, haría lo siguiente:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Profit by Product.jmp" );
gb1 = Expr(
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :Quarter ),
Y( :Revenue ),
Y( :Product Cost, Position( 1 ) ),
Y( :Profit, Position( 1 ) ),
Wrap( :Product Line )
),
Elements( BoxPlot( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 6 ) ) )
)
);
gb2 = Expr(
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :Quarter ),
Y( :Revenue ),
Y( :Product Cost, Position( 1 ) ),
Y( :Customer Service Cost, Position( 1 ) )
),
Elements(
Line( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 6 ) ),
Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 6 ) )
)
)
);
New Window( "", <BR /><BR />Tab Box( Tab Page Box( "Graph1", gb1 ),<BR /><BR />Tab Page Box( "Graph2", gb2 )<BR /><BR /> ) );