¿Hay alguna manera fácil de abrir un gráfico generado por un script con el nombre del script como título?Hola, a menudo me encuentro guardando algunos scripts que usaron la misma aplicación (por ejemplo, Graph builder) en una tabla de datos. Cuando ejecute estos scripts, el título de la ventana del gráfico será automáticamente "Tabla de datos - generador de gráficos".
Cuando se ejecutan varios scripts, esto crea la situación de tener ventanas abiertas con los títulos "Graph Builder 2", "Graph Builder 3" y pierdo la pista de qué script generó qué ventana.
He estado usando un código alrededor de mi secuencia de comandos como el siguiente ejemplo, sin embargo, cuando realizo algunos cambios, no puedo simplemente realizar la opción "guardar secuencia de comandos en la tabla de datos" sin sobrescribir esta convención de nomenclatura.
w = Graph Builder(
// graph script
);
w << set window title( "script name" )
Ejemplo: el script abre una ventana con el título genérico "Generador de gráficos".

Gráficossecuencias de comandosRe: ¿Hay alguna manera fácil de abrir un gráfico generado por un script con el nombre del script como título?Si su pregunta es, "¿cómo guardo un script en la tabla de datos con un nombre específico?" Entonces creo que tengo una respuesta para ti.
dt=current data table();
obj=dt<<GRAPH builder=""> , < <<PROMPT>, < <<REPLACE> );
obj << Save Script to Data Table("New GB");</REPLACE></PROMPT></GRAPH>
... pero no estoy seguro de si eso era lo que estabas preguntando.
Re: ¿Hay alguna manera fácil de abrir un gráfico generado por un script con el nombre del script como título?Hola Byron, eso no era lo que estaba preguntando. Estoy buscando el nombre de la ventana que se abre para tener el nombre del script. Como dije, puedo hacerlo una vez agregando el siguiente código alrededor de mi script. Pero mi problema entonces es que no puedo modificar mis gráficos (por ejemplo, cambiar ejes y elementos visuales) sin tener que copiar/pegar el nuevo script de gráfico en mi script de tabla de datos.
w = Graph Builder(
// graph script
);
w << set window title( "script name" )

Acabo de probar un método para crear una segunda secuencia de comandos que ejecuta la secuencia de comandos del generador de gráficos y cambia el nombre de la ventana. Esto es básicamente lo que quiero porque puedo hacer cambios en el gráfico y "guardar en la tabla de datos" nuevamente, sobrescribiendo mi gráfico original. Ya no necesito copiar/pegar. Vea "big class 2.jmp" en los archivos adjuntos, simplemente ejecutaría el script "ejecutar myGraph1". Sería bueno, por supuesto, si no necesitaría la segunda secuencia de comandos para iniciar mi secuencia de comandos de gráficos.
Re: ¿Hay alguna manera fácil de abrir un gráfico generado por un script con el nombre del script como título?¿Es esto lo que estás buscando?
w << get window title()
Re: ¿Hay alguna manera fácil de abrir un gráfico generado por script con el nombre del script como título?¿Qué sucede si en lugar de cambiar el título de la ventana, simplemente cambia el nombre del cuadro de contorno en esa ventana?Puede hacerlo haciendo doble clic en el nombre, y eso se mantiene en el script guardado.

Una barra lateral: esto podría alejarse más de cambiar gráficos sin copiar/pegar, pero si tiene un montón de gráficos que busca con frecuencia para un conjunto de datos, podría considerar crear un tablero o una ventana que los contenga a todos, con algunos encabezados y texto para dar cada contexto.
Re: ¿Hay alguna manera fácil de abrir un gráfico generado por un script con el nombre del script como título?Según los comentarios de este hilo, concluyo que no hay una manera fácil de hacer esto en JMP.
Re: ¿Hay alguna manera fácil de abrir un gráfico generado por un script con el nombre del script como título?Supongo que el comportamiento con el que estoy luchando se puede eludir usando un panel de control. Intentaré adaptar mi forma de trabajar en JMP.
Re: ¿Hay alguna manera fácil de abrir un gráfico generado por script con el nombre del script como título?Espero haber entendido lo que preguntas. Este script ilustra una forma en que podría funcionar. La primera parte es solo una forma de tener algo abierto (tabla de datos y generador de gráficos) para que funcione el resto del script. Esa es la parte que puede usar con sus propios objetos abiertos de Graph Builder. Puede guardar este script como un complemento para que solo sea cuestión de seleccionar un comando de menú cuando desee usarlo.
Names Default to Here( 1 );
// example of Graph Builder
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
// now the script to save table script with desired name
// ask user for name of script
dialog = New Window( "Name of Script", << Modal,
Panel Box( "Script Name",
Line Up Box( N Col( 2 ),
Text Box( "Name:" ),
teb = Text Edit Box( "Graph Builder Script" )
),
H List Box(
Button Box( "OK",
name = teb << Get Text;
),
Button Box( "Cancel" )
)
)
);
If( dialog["Button"] == -1, Throw( "User cancelled" ) );
// save script for current instance of Graph Builder
window = Get Window List();
wName = window << Get Window Title;
nWindows = N Items( window );
For( i = nWindows, i > 0, i--,
If( Contains( wName[i], "Graph Builder" ),
Break();
);
);
obj = window[i]["Graph Builder"] << Get Scriptable Object;
obj << Save Script to Data Table( name, << Prompt( 0 ), << Replace( 1 ) );
// update table script
script = dt << Get Property( name );
Eval(
Substitute(
Expr(
dt << Set Property( nnn,
w = sss;
w << Set Window Title( nnn )
)
),
Expr( sss ), Name Expr( script ),
Expr( nnn ), name
)
);Re: ¿Existe una manera fácil de abrir un gráfico generado por un script con el nombre del script como título?Si quisiera ejecutar algo similar para un gráfico unidireccional, ¿cómo puedo modificarlo? Reemplazar "Graph Builder" por "Oneway" no parece funcionar.
Re: ¿Existe una manera fácil de abrir un gráfico generado por un script con el nombre del script como título?Con la ayuda de un colega (¡Gracias Andrew!), se nos ocurrió esto.
clear Globals();
Delete Symbols();
// save script for current instance of Fit Group
window = Get Window List();
wName = window << Get Window Title;
nWindows = N Items( window );
For( i = nWindows, i > 0, i--,
If( Contains( wName[i], "Fit Y by X" ),
obj = window[i]["Fit Group?"] << Get Scriptable Object;
Show(obj);
obj << Save Script for All Objects;
Break();
);
);
Se puede adaptar para capturar el guión de cualquier tipo de gráfico sustituyendo los elementos entre comillas. ¿La capacidad de utilizar un? como comodín en una matriz no tiene precio.