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 )
)}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:
//seleccionar los datos en la tabla de datos original Nombres predeterminados hasta aquí( 1 ); dt = Tabla de datos actuales (); /* 28/02/2022 Editar obtener nombres de columna a 1. obtener variable del eje x 2. obtener variable de agrupación para colorear los puntos - debe ser una opción de ninguno para cuando no hay grupo - declaración lógica más adelante si set_groupby es "ninguno ", entonces no - Además, pregunte al usuario qué esquema de color debe usarse. Color automático JMP (azul y rojo) o ninguno (si se colorea manualmente, por ejemplo, por ID de lote) consulte la fuente: https://www.jmp.com/support/help/zh-cn/15.2/index.shtml#page /jmp/get-column-names.shtml */ column_names = dt << Obtener nombres de columnas (numérico, carácter, cadena); //POR HACER: //names_for_groupby_select = //group by debe ser solo una variable de carácter, por lo que groupby_col_names = dt << Obtener nombres de columnas (carácter, cadena); nw1 = Nueva ventana ("Establecer el eje X y agrupar por variable", < 9, 5); // gráfico genérico (puede ser gráfico de control o gráfico de proceso) Oneway( SendToByGroup( {:Name("Label (eje y)") == label_val}, Y( :Result ), X( char(set_xlabel) ), / /:Name("eje x") ), Connect Means( 1 ), Grand Mean( 0 ), SendToReport( Dispatch( {}, "Result", TextEditBox, {Set Text( label_val || units_formatted )} ), // tamaño de fuente: Dispatch( {}, "2", ScaleBox, {Label Row( Establecer tamaño de fuente( font_size ) )} ), // material gráfico: Dispatch( {}, "Gráfico unidireccional", FrameBox, {Tamaño de marco( 1000 , 300 ), DispatchSeg( CustomStreamSeg( 6 ), {Line Color( "Gray" )} ), Row Legend( //group by this //:Name("Group"), //o simplemente Group también funciona char(set_groupby ), // << debe ser especificado por el usuario. //set_groupby, // QUE HACER: ¡corregir este error! Color( 1 ), Color Theme( "JMP default"), // QUE HACER: << debe ser especificado por el usuario. Marcador( 0 ), Tema de marcador( "" ), Escala continua( 0 ), Escala inversa( 0 ), Filas excluidas( 0 ) )} ) ) ) ); ); contenedor << Agregar (contenido));
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"
Tabla de datosGráficosOtrosecuencias de comandosventanas