Usar una variable como nombre de columna al crear un gráfico
The script below loads some data and should create twice the same plot.<BR />The first one by referring to the column name by using a variable (test1), the second one by calling the column name directly.
The second one works fine, but for the first one I get an empty plot area. I guess there is a problem with how I define or call test1. I have tried different approaches, but so far nothing worked.
Names Default To Here( 1 );
// Import the Excel file with specified settings
dt = Open(
"/Y:/.../file.xlsx",
Worksheets( "Pivot table for JMP" ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Headers Start on Row( 2 ),
Data Starts on Row( 3 )
)
);
// Filter rows to include only "AAA" in "Common Designation"
dt_AAA = dt << Subset(
Rows( :Common Designation == "AAA" ),
Include All Columns,
Name( "Filtered AAA" )
);
size = "AAA" ;
Match( size,
"AAA", test1 = column ("PL (min)"),
);
New Window( size,
V List Box(
Graph Builder(
Size( 500, 297 ),
Show Control Panel( 0 ),
Variables( X( :test1 ), Y( :Chemistry ), Color( :Chemistry ) ),
Elements( Points( X, Y, Legend( 106 ) ) )
),
Graph Builder(
Size( 500, 297 ),
Show Control Panel( 0 ),
Variables( X( :"PL (min)"n ), Y( :Chemistry ), Color( :Chemistry ) ),
Elements( Points( X, Y, Legend( 106 ) ) )
),
),
);
Automatización y scriptingRe: uso de una variable como nombre de columna al crear un gráficoSi entiendo bien, creo que solo necesitas quitar los dos puntos delante de test1 en el primer script del Constructor de Gráficos. Aquí tienes un script de ejemplo que funciona:
Names Default To Here (1);
dt = open ("$SAMPLE_DATA/big class.jmp");
test1 = column ("weight");
Graph Builder (
Variables (X(test1), Y(:height), color (:sex))
);
Re: uso de una variable como nombre de columna al crear un gráficoUn truco genial para encontrar errores como este:
Eliminar cada vez más líneas del script con errores, hasta que solo queden las suficientes para generar el error.
Importante: el código debe contener todos los ingredientes para producir el error, para todos los que ejecutan el código *)
Esto tiene dos ventajas:
- En la mayoría de los casos, uno encuentra el error automáticamente. 1 línea eliminada, el error desaparece.
- El código restante es muy corto, lo que hace que sea mucho más fácil encontrar el error.
*) en mi sistema se bloqueó con el mensaje de error:

Mucho mejor: use uno de los archivos de muestra, como en el ejemplo de @Jed_Campbell .
Esto tiene otro beneficio: puedes diferenciar entre:
- hay un error en mi tabla de datos (y el error desapareció con los datos de ejemplo)
- hay un error en mi script (porque puedo reproducir el error con los datos de muestra)