Hola,
Tengo una tarea para escribir algunas visualizaciones como secuencias de comandos de tabla.Normalmente esto es simple. La parte aproximada son las líneas de referencia que necesitan hacer referencia a otras fuentes cuando se ejecuta el script.Debido a que las referencias están contenidas en dos funciones que normalmente no aceptan variables desde el exterior, descubrir cómo usar manipulaciones de expresiones para insertar estos valores es algo que actualmente está más allá de mi nivel de habilidad. Hay múltiples obstáculos que superar.
- Funciones que no aceptan bien variables externas
- var1 = 1;
var2 = 2;
Dt << New script( “ejemplo”, print(var1 + var2)); - Tenga en cuenta que las variables se definen fuera del script de tabla. Este es un requisito, ya que los números se referenciarán desde una tabla de datos.
- Despacho()
- Para los valores dentro de esto, deben ser valores estáticos y claramente establecidos.
- Trabajar con expresiones que no contienen funciones
- ejemplo = expr( Nuevo Script() );
título = "prueba";
insertar en (ejemplo, título); // mostrar (ejemplo) = Nuevo script ("prueba")
// Más adelante al insertar cols en el eje x, como en la línea 22 del ejemplo…
x_vacío = expr( X() );
x_columnas = { :columna1, :columna2 };
insertar en( x_empty, x_cols[1] ); // error, JMP no sabe qué es X() - Esto me dice que, de alguna manera, X() no debe evaluarse, pero aún así permitir la inserción de elementos, que es lo que se supone que deben hacer nombres como expr() y expr(), pero no funcionan en este caso.
El script de ejemplo contiene un ejemplo simplificado de lo que quiero lograr. Los títulos y números en la tabla recién generada deben insertarse en el script de la tabla, antes de ejecutar la función para insertarla en Big Class. Tengo un ejemplo básico de esto en la parte inferior de la secuencia de comandos.
Names default to here(1);
clear log();
// Reference table
// Used to populate data in table script below for dt( big )
dt = New Table( "Example",
Add Rows(2),
New Column( "Growth Label", Character, Nominal, Set Values( { "Tall", "Short" } ) ),
New Column( "Height tag", Numeric, Continuous, Set Values( { 67.5, 60 } ) ),
);
// Example table
big = open( "$SAMPLE_DATA/Big Class.jmp" );
// Plain example - vis added as table script * works *
big << New Script( "Example",
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Fit to Window,
Set α Level( 0.05 ),
Variables( X( :weight ), X( :age ), Y( :height ), Color( :sex ) ),
Elements( Points( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"height",
ScaleBox,
{Add Ref Line( 67.5, "Dashed", "Medium Dark Green", "Tall", 1 ),
Add Ref Line( 60, "Dashed", "Medium Dark Red", "Short", 1 )}
)
)
)
);
// Needed info for below
vis_x = { :weight, :age };
vis_y = { :height };
// Modified example - vis added as table script * not working *
big << New Script( "Example",
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Fit to Window,
Set α Level( 0.05 ),
Variables( X( vis_x[1] ), X( vis_x[1] ), Y( vis_y[1] ), Color( :sex ) ),
Elements( Points( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"height",
ScaleBox,
{Add Ref Line( big:Height tag[1], "Dashed", "Medium Dark Green", big:Growth Label[1], 1 ),
Add Ref Line( big:Height tag[2], "Dashed", "Medium Dark Red", big:Growth Label[2], 1 )}
)
)
)
);
// Example: expression manipulations
var1 = 10; // represents some reference number, from somewhere
var2 = 1; // represents some reference number, from somewhere
expr_test = eval expr( expr(var1) + expr(var2) );
expr_begin = expr( New Script( "Var replacement" ) );
insert into( expr_begin, name expr( expr_test ) );
show( expr_begin );
eval( eval expr( big << expr( name expr( expr_begin ) ) ) ); // Script contains: 10 + 1
/* Notice how the table script "Var replacement" in big doesn't contain var1 & var2,
it contains the values they represent. This is what I want to do. */
close( dt, "No Save" );La búsqueda de "líneas de referencia" arroja bastantes resultados en los foros de la comunidad. El ejemplo más cercano que he encontrado, hasta ahora, son los enlaces a continuación.
https://community.jmp.com/t5/Discussions/Is-there-a-way-to-automatically-draw-ref-lines-at-the-peak-of/mp/87721/highlight/false#M38710
https://community.jmp.com/t5/Discussions/Fill-color-for-multiple-reference-lines/mp/273205