Tengo un script que crea hasta ocho gráficos muy similares como parte del análisis. El número de parcelas puede variar en función de si existen columnas correspondientes. Las únicas diferencias en los gráficos son las columnas que se utilizan para los datos del eje y y los títulos. En aras de la eficiencia, estaba tratando de evitar solo secuencias de comandos de cada trama de forma secuencial. Intenté usar un bucle for que se extrajo de listas preestablecidas de nombres de columnas y títulos, pero no pude hacer que funcionara. ¿Es esto realmente posible en JMP 13? He adjuntado la sección de guión de lo que he intentado.
¡Gracias por la ayuda! ¡Tengo el guión funcionando!
Un par de cuestiones.
1. El código de su generador de gráficos tenía una ")" mal colocada que estaba terminando el código con un error de análisis.
2. La función: Nombre () no resuelve los elementos, por lo que no puede tener algo como: cols [f] como un valor para la función. Necesita pasar solo una cadena entre comillas,
El siguiente código soluciona ambos problemas
For( f = 1, f <= N Items( plots ), f++,
Eval(
Substitute(
Expr(
__plots__ = Graph Builder(
Size( 1267, 905 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :RPN, Order By( __col__ ), Descending, Order Statistic( "Mean" ) ) ),
Y( __col__ ),
Elements( Bar( X, Y, Legend( 4 ), Label( "Label by Value" ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( outline titles[f] )} ),
Dispatch( {}, "RPN", ScaleBox, {Max( 10.5 ), Label Row( Label Orientation( "Angled" ) )} ),
Dispatch( {}, "400", ScaleBox, {Legend Model( 4, Properties( 0, {Fill Color( 53 )} ) )} ),
Dispatch( {}, "graph title", TextEditBox, {Set Text( plot titles[f] )} ),
Dispatch( {}, "X title", TextEditBox, {Set Text( "RPN" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Affected Lots" )} ),
Dispatch( {}, "400", LegendBox, {Set Title( "" )} )
)
)
),
Expr( __plots__ ), Parse( "Plots" || Char( f ) ),
Expr( __col__ ), Parse( ":Name(\!"" || Char( cols[f] ) || "\!")" )
)
)
);