JSL: cómo escribir una actualización de gráfico con el cuadro combinado y los botones Siguiente/AnteriorHola todos,
Estoy trabajando en un conjunto más grande de código JSL y estoy interesado en agregarle algunas funciones para que el usuario pueda recorrer diferentes vistas, algo así como lo que uno puede hacer al recorrer los diferentes componentes en la plataforma PCA, vea la pantalla tiro abajo.

Sé que necesito un par de cuadros combinados con las columnas relevantes de la tabla de datos, pero no estoy seguro de cómo hacer que el gráfico se actualice automáticamente como en la plataforma PCA o cómo llamar correctamente al cuadro del botón Siguiente. También me gustaría agregar un cuadro de botón Anterior para que el usuario pueda retroceder en la vista más fácilmente.
Si alguien tiene alguna sugerencia o idea sobre cómo implementar esto, agradecería la ayuda. No he tenido éxito en la búsqueda de esta funcionalidad ni he encontrado mucho al respecto en el Índice de secuencias de comandos o la Guía de secuencias de comandos que tengo.
¡Gracias!,
SD
ACTUALIZACIÓN: Me estoy acercando y tengo un código que recorre la lista en el cuadro combinado, por lo que es bastante sencillo (ver más abajo). Con lo que todavía tengo problemas es que el gráfico se actualice automáticamente. La intención es que cuando el usuario haga clic en Siguiente o Anterior, la variable y cambie automáticamente en el gráfico. Por cierto, estoy usando el archivo Boston Housing.jmp para probarlo.
Names Default To Here( 1 );
dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
nw = New Window( "interactive Graph builder", V List Box( vlb1 = V List Box(), vlb2 = V List Box() ) );
xcol = 1;
ycol = 2;
lbcontent = V List Box(
Lineup Box( N Col( 5 ),
Text Box( "Select Params", <<SET font="" size=""></SET>
secuencias de comandosRe: JSL: cómo crear un script para actualizar un gráfico con el cuadro combinado y los botones Siguiente/AnteriorHola, estoy buscando más ayuda en esto?
Estoy tratando de que solo aparezca una cierta cantidad de columnas en mi xlist en lugar de todas las columnas, que se colocan en cualquier orden aleatorio
xlist= {"crim", "nox", "radial"};
Usando el script anterior, solo está trazando las primeras 3 columnas, que en este caso "crim", "zn" e "indus" y no las que mencioné anteriormente.
¿Hay alguna solución a esto?
Gracias.
Re: JSL: cómo crear un script para actualizar un gráfico con el cuadro combinado y los botones Siguiente/AnteriorActualización: OK, así que necesitaba leer un poco más en mi Guía de secuencias de comandos sobre Agregar, Anteponer, Sib Agregar y Sib Anteponer. Después de leer sobre esto, era cuestión de determinar a qué caja contenedora necesitaba anteponer el gráfico actualizado. Entonces, cuando se trata de tener otras cajas contenedoras en una ventana, es posible que deba usar el comando Sib Prepend(). Tiene sentido ahora que lo veo.
El JSL adjunto hace todo lo que pretendía, si alguien está interesado.
¡Gracias!,
SD
Re: JSL: cómo crear un script para actualizar un gráfico con el cuadro combinado y los botones Siguiente/AnteriorHola @ian_jmp ,
Espero que pueda ayudarme a hacer que este script funcione correctamente cuando tenga más elementos en la nueva ventana. Pude tomar mi secuencia de comandos conceptual que funcionaba por sí sola y moverla a una secuencia de comandos más grande que divide los datos y muestra los resultados. Adjunto mi código JSL como un archivo, podría ser más fácil de esa manera. Abre Boston Housing y puede seleccionar la tabla de datos y luego los factores X y la respuesta Y y establecer una porción de validación y el número máximo de divisiones para intentar.
El código funciona para generar el resultado que quiero (a continuación):

Pero, cuando recorre los parámetros, reorganiza el diseño de la ventana en esto:

Me gustaría mantener el mismo diseño que la primera captura de pantalla, pero las opciones Anteponer y Agregar no mantienen el diseño correcto. Cualquier ayuda es muy apreciada.
¡Gracias!,
SD
Re: JSL: cómo crear un script para actualizar un gráfico con el cuadro combinado y los botones Siguiente/AnteriorHola @ian_jmp ,
Eso hizo exactamente el truco, ¡gracias! Publicaré el código de trabajo a continuación y lo marcaré como la solución, ya que este código hace exactamente lo que pretendía cuando comencé a trabajar en esta parte.
¡Gracias!,
SD
Código actualizado con anteponer en lugar de agregar.
Names Default To Here( 1 );
dt = Open("$sample_data/Boston housing.jmp");
//dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
gb_default = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, 1 ) ), Y( Column( dt, 2 ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
gb_change = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, xcol ) ), Y( Column( dt, ycol ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
nw = New Window( "Interactive Graph",
gb = gb_default;
lbcontent = Lineup Box( N Col( 5 ),
Spacer Box( Size( 1, 0 ) ),
Text Box( "X", <<JUSTIFY text=""></JUSTIFY>Re: JSL: cómo crear un script para actualizar un gráfico con el cuadro combinado y los botones Siguiente/AnteriorPruebe 'Anteponer' en lugar de 'Anexar'.
Re: JSL: cómo crear un script para actualizar un gráfico con el cuadro combinado y los botones Siguiente/AnteriorHola todos,
Entonces, pude encontrar un hilo de discusión anterior. aquí dónde @milisegundo ayudó a otro usuario a hacer algo similar. Pude trabajar a partir de esa idea y modificarla para que funcione más o menos como pretendía. a continuación se muestra el código que permite esa funcionalidad, excepto por un "defecto" menor.
El código permite al usuario seleccionar los elementos X, Y para graficar y actualiza el gráfico cuando se cambian los cuadros combinados o cuando se presionan los botones Anterior/Siguiente. Entonces, en este sentido, el código funciona según lo previsto.
Después de realizar un cambio para trazar algo diferente, el cuadro de contenido del generador de gráficos cambia de posición con el Cuadro de alineación de selección que contiene los cuadros combinados/cuadros de botones. Me gustaría mantener el Cuadro de alineación que contiene las opciones para modificar el gráfico en la parte inferior de la ventana y no estoy seguro de cómo hacerlo.
¡Cualquier sugerencia sobre cómo hacer que esto funcione es muy apreciada! (código al final).
¡Gracias!,
SD
Ventana de inicio (con la opción a continuación):

Ventana actualizada después de realizar un cambio en los cuadros combinados X o Y, o en los botones Anterior/Siguiente:

Aquí está el código:
Names Default To Here( 1 );
//dt = open("$sample_data\Boston Housing.jmp");//In case the file isn't already open.<BR />
dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
gb_default = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, 1 ) ), Y( Column( dt, 2 ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
gb_change = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, xcol ) ), Y( Column( dt, ycol ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
nw = New Window( "Interactive Graph",
gb = gb_default;
lbcontent = Lineup Box( N Col( 5 ),
Spacer Box( Size( 1, 0 ) ),
Text Box( "X", <<JUSTIFY text=""></JUSTIFY>Re: JSL: cómo crear un script para actualizar un gráfico con el cuadro combinado y los botones Siguiente/AnteriorHola @DonMcCormack ,
Sí, seguro que funcionaría, pero quiero una actualización automática del gráfico cuando el usuario haga clic en los botones Siguiente/Anterior o seleccione un conjunto diferente de variables del cuadro combinado. Esencialmente, estoy tratando de recrear la funcionalidad de la plataforma PCA pero hacer que se generalice para incorporarla a otros scripts.
SD
Re: JSL: cómo crear un script para actualizar un gráfico con el cuadro combinado y los botones Siguiente/Anterior¿Por qué no usar el conmutador de columna?