Hola,
(NOTA sobre el contexto: estoy trabajando en una plantilla de gráfico que automatiza la creación de gráficos para cada etiqueta (A, B, C, D y E) en el conjunto de datos (consulte el script adjunto) y luego lo anexo a la misma ventana de salida para exportar y compartir fácilmente. Aquí, estoy usando un solo gráfico para la etiqueta "A" como ejemplo para probar qué es lo que está mal con mi secuencia de comandos. )
He tenido un problema con mi secuencia de comandos JMP que no lee la variable Agrupar por seleccionada de la selección del usuario en la ventana modal. Quiero que el usuario seleccione un nombre de columna "agrupar por" de los datos que podría ser cualquier variable agrupar por y tener una leyenda y un esquema de colores como en el ejemplo a continuación.

En la tabla de datos JMP adjunta, los datos de mi juguete tienen la columna "grupo" genérica. Sin embargo, un usuario debe poder seleccionar cualquier variable de carácter (como sitio de fabricación, lote, proceso, formulación) de la tabla y tener la leyenda de grupo y el esquema de colores.
Aquí está mi secuencia de comandos JMP:
//select the data in the original data table
Names Default To Here( 1 );
dt = Current Data Table();
/*
2/28/2022 Edit
get column names to
1. get x-axis variable
2. get grouping variable for coloring the dots
- needs to be a none option for when there is no group
- logic statement later if set_groupby is "none", then no
-
Also, ask user what coloring scheme should be used.
JMP auto color (blue and red) or none (if manually coloring by, for example, batch ID)
see source: https://www.jmp.com/support/help/zh-cn/15.2/index.shtml#page/jmp/get-column-names.shtml
*/
column_names = dt << Get Column Names( Numeric, character, String );
//TO DO:
//names_for_groupby_select =
//group by should be a character variable only, so
<FONT color="#FF0000">groupby_col_names = dt << Get Column names(character, String);</FONT>
nw1 = New Window("Set X-axis and group by variable",
<<MODAL>groupby_col = Radio Box(groupby_col_names),
H List Box(
Button Box("OK",
answers = Eval List({set_xlabel = xaxisselect << get selected,
<FONT color="#FF0000">set_groupby = groupby_col << get selected</FONT>
});
nw1 << close window;
),
Button Box("Cancel")),
//change popup window size
<<SIZE window=""> 9, 5);
// generic chart (can be control chart or process chart)
Oneway(
SendToByGroup( {:Name("Label (y-axis)") == label_val},
Y( :Result ),
X( char(set_xlabel) ), //:Name("x axis") ),
Connect Means( 1 ),
Grand Mean( 0 ),
SendToReport(
Dispatch(
{},
"Result",
TextEditBox,
{Set Text( label_val || units_formatted )}
),
//font size:
Dispatch(
{},
"2",
ScaleBox,
{Label Row( Set Font Size( font_size ) )}
),
//graph stuff:
Dispatch(
{},
"Oneway Plot",
FrameBox,
{Frame Size( 1000, 300 ), DispatchSeg(
CustomStreamSeg( 6 ),
{Line Color( "Gray" )}
),
<FONT color="#FF0000">Row Legend(
//group by this
//:Name("Group"), //or just Group works too
char(set_groupby), // << need to be specified by user.
//set_groupby, // TO DO: fix this bug!</FONT>
Color( 1 ),
Color Theme( "JMP default" ), // TO DO: << needs to be specified by user.
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)
);
);
container << Append(content)
);</SIZE></MODAL>
En esta secuencia de comandos JMP, la selección de la columna del eje x funciona (vea el ejemplo de la ventana modal y el gráfico resultante a continuación), por lo que asumí que la referencia de variable de grupo también funcionará. Pero la salida produce un gráfico que no tiene ninguna variable de grupo o leyenda. ¿Qué está haciendo mi código incorrectamente aquí?
Ventana Modal:

Gráfico de ejemplo de salida JMP para la etiqueta "A"

Resolví el problema a través de esta publicación.
Usando Column(listDT,set_groupby) en char(set_groupby).
Row Legend(
//group by this
Column(listDT,set_groupby),
Color( 1 ),
Color Theme( "JMP default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}También puedes utilizar Eval()
Row Legend(
//group by this
Eval(set_groupby),
Color( 1 ),
Color Theme( "JMP default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}