Diagrama de obleas de semiconductores. ¿Cómo puedo solucionar el error?Names Default To Here(1);
// Function to recode a selected column
recode_column = Function({dataTable, columnToRecode, newColumnName},
// Check if column exists
If(Column(dataTable, columnToRecode) != {},
// Create a mapping for recoding
aa_recode = Associative Array();
For(i = 1, i <= N Row(dataTable), i++,
aa_recode[Column(dataTable, columnToRecode) << Get Value(i)] = Column(dataTable, columnToRecode) << Get Value(i);
);
dataTable << New Column(newColumnName, Character, Nominal, << Set Each Value(
aa_recode[Column(dataTable, columnToRecode)]
));
cols = {};
For(i = 1, i <= N Col(dataTable), i++,
cols[N Items(cols) + 1] = Column(dataTable, i) << Get Name
);
recodeColListBox << Set Items(cols);
colorColListBox << Set Items(cols); // Refresh heatmap plotting list
Show Message("Column recoded and new column added: " || newColumnName);
,
Show Message("Selected column does not exist.")
);
);
// Function to plot the heatmap
PlotHeatmap = Function({dataTable, colorColumnName},
If(colorColumnName != "",
Graph Builder(
Size(1500, 800),
Show Control Panel(0),
Data Table(dataTable),
Variables(
X(:x_Location),
Y(:y_Location),
Color(Column(dataTable, colorColumnName))
),
Elements(Heatmap(X, Y, Legend(4)))
)
,
Show Message("Please select a column for color.")
)
);
list = {};
For(i = 1, i <= N Table(), i++,
list[i] = Data Table(i) << Get Name
);
// Create the window
win = New Window("JMP ADDIN",
H List Box(
V List Box(
Panel Box("Choose a source data table",
dtListBox = List Box(list, max selected(1))
)
),
Button Box("Get Columns",
chosen = Data Table((dtListBox << Get Selected)[1]);
If(chosen != {},
cols = {};
For(i = 1, i <= N Col(chosen), i++,
cols[N Items(cols) + 1] = Column(chosen, i) << Get Name
);
recodeColListBox << Set Items(cols);
colorColListBox << Set Items(cols); // Refresh for heatmap plotting
,
Show Message("Please select a valid data table.")
);
),
// Panel for selecting columns to recode
V List Box(
Panel Box("Select Columns for Recode",
recodeColListBox = List Box("")
)
),
// Button to recode a column
Button Box("Recode Column",
chosen = Data Table((dtListBox << Get Selected)[1]);
recode_col = recodeColListBox << Get Selected;
If(recode_col != "",
new_col_name = "Recode_" || recode_col; // Define new column name
recode_column(chosen, recode_col, new_col_name);
// Refresh column list after recoding
cols = {};
For(i = 1, i <= N Col(chosen), i++,
cols[N Items(cols) + 1] = Column(chosen, i) << Get Name
);
recodeColListBox << Set Items(cols);
colorColListBox << Set Items(cols); // Ensure the new column is available for heatmap plotting
,
Show Message("Please select a column to recode.")
);
),
// Panel for selecting columns to plot heatmap
V List Box(
Panel Box("Select Columns for Heatmap",
colorColListBox = List Box("")
)
),
// Button to plot the heatmap
Button Box("Plot Heatmap",
selectedColorColumn = colorColListBox << Get Selected;
If(selectedColorColumn != "",
chosen = Data Table((dtListBox << Get Selected)[1]);
If(chosen != {},
PlotHeatmap(chosen, selectedColorColumn);
,
Show Message("Selected data table is invalid.")
);
,
Show Message("Please select a column for color.")
);
)
)
);Flujo de trabajo: Seleccionar tabla--> Seleccionar columna para recodificar--> Recodificar columna (necesita ayuda para permitir la recodificación tanto de columnas numéricas como de caracteres)---> Actualizar lista de columnas--> seleccionar una o varias columnas--> Trazar mapa de calor
Necesito ayuda 1) depurar el script actual donde puedo recodificar solo columnas de tipo de datos numéricos
2) ¿Cómo incluir la selección de columnas de tipo de carácter para recodificar?
3) ¿Puedo abrir de otra manera la interfaz de usuario preestablecida de recode mediante jmp(columns--> Recode) como parte de la interfaz de usuario?
Análisis y modelado de datos básicosCombinación y limpieza de datosVentanasRe: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?Parece que este código lo ha creado algún LLM, por lo que contiene muchos pequeños errores y utiliza funciones que JMP no tiene. ¿Podrías proporcionar una tabla de ejemplo que también contenga el resultado correcto y una explicación de dónde proviene?
Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?
Este es el ejemplo: recodifica el "número de lote" para agruparlo y trazar el mapa de calor usando la "columna recodificada".

Ejemplo 2: se agrupan los evaluadores y luego se traza el mapa de calor utilizando la columna recodificada
Espero que esto ayude
Gracias
Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?¿En qué se basa la agrupación? ¿Filas consecutivas?
Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?Sí o usando la columna recodificada
Por ejemplo, donde: columna recodificada = 1 (agrupando así los probadores 1 y 2)Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?Todavía no estoy seguro de cómo se supone que el probador 3 se convierta en 2 o qué tipo de mapa de calor estás viendo solo en estas dos columnas.




Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?¿Cuál es la regla que se debe utilizar para la recodificación? Según su ejemplo, parece que la recodificación consiste simplemente en tomar las filas 1 y 2 y agruparlas, luego tomar las filas 3 y 4 y agruparlas, etc., asignando a la primera agrupación el valor 1 y a la segunda el valor 2, etc.
Si este es el caso, la fórmula de la columna recodificada es simplemente
Ceiling(Row() / 2)
¿Es esto lo que estás buscando? Funcionará tanto para datos numéricos como de caracteres, ya que no depende de los valores de lot_no o tester, sino solo del número de fila.
Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?La recodificación debe seleccionarse mediante la interfaz de usuario y puede cambiar según el usuario. Una vez que se activa la función Recodificar columnas, el usuario puede recodificar como desee y luego agregar la nueva columna. Luego, se le solicita al usuario que seleccione la nueva columna y la use para configurar el gráfico. Lo anterior fue solo un ejemplo.Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?La columna recodificada se puede colocar como página (: columna recodificada) Necesito ayuda sobre cómo activar la recodificación de la columna seleccionada y luego agregarla a la lista de columnas cuando se actualizaRe: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?Entonces, desea tener una interfaz de usuario que pueda...
- Permitir que el usuario seleccione columna(s)
- Activar la plataforma de recodificación de JMP en las columnas seleccionadas
- Evitar que el usuario utilice la operación in situ
- Detectar qué nuevas columnas se crearon
- Crear un gráfico basado en las columnas recién creadas
?
Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?¡Sí!Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?Puede que esto no sea tan sencillo como piensas si quieres permitir que los usuarios utilicen libremente la plataforma de recodificación.
Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?¿Hay alguna manera de hacerlo? ¿O algún otro enfoque para automatizar estas tareas en ese orden?
GraciasRe: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?Creo que deberías replantearte las especificaciones que tienes para tu script. Qué debes tener, qué pueden hacer los usuarios con las plataformas de JMP, si pueden ejecutar tu script después de haber usado Recode y haber seleccionado esas nuevas columnas, etc.
Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?Una lista de columnas podría ser suficiente: a través de los 2 botones, el usuario puede decidir si desea recodificar o trazar las columnas seleccionadas:

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each( {col}, {:age, :height, :weight}, col << Set Modeling Type( "Nominal" ) );
New Window( "simple GUI", << Type("Dialog"),
lb = Filter Col Selector( width( 150 ) ),
Button Box( "recode",
cols = lb << get selected();
dt << select columns( cols );
dt << Recode;
),
Button Box( "plot",
cols = lb << get selected();
If( N Items( cols) >= 2 ,
xcol = cols[1];
ycol = cols[2];
Graph Builder( Variables( X(Eval(xcol) ), Y( Eval(ycol) ) ), Elements( Heatmap( X, Y ) ) );
,
Caption( "select 2 columns" )
);
)
);Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?Está bien, gracias. ¿Hay alguna manera de recodificar una columna y luego trazar un gráfico usando esa columna? ¿O abrir una nueva interfaz gráfica de usuario para trazarla?
Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?Sí.
Simplemente seleccione la columna, recodifíquela (mediante reemplazar) y luego haga clic en el botón trazar.
En este momento, se necesitan seleccionar 2 columnas (para x e y) para generar un mapa de calor significativo. Solo hay que ajustar el código para generar el gráfico que se necesita.Re: Trazado de mapa de obleas de semiconductores. ¿Cómo puedo solucionar el error?¿Podrías explicar por qué quieres configurar un flujo de trabajo que combine los 2 pasos?
- recodificar
- trama
La recodificación es un paso muy común, pero en la mayoría de los casos es parte de un flujo de trabajo de curación de datos , que es algo independiente del análisis de datos. ¿Por qué desea combinar los dos pasos?
¿Los usuarios tienen que recodificar las columnas cada vez antes de poder trazarlas?
Después de que el usuario A haya recodificado la columna, el usuario B puede tomar la columna recodificada y no tiene que volver a codificarla. ¿O prefiere algunas "columnas virtuales" [columnas de transformación] que desaparecerán después del usuario A de modo que el usuario B pueda definir su propia recodificación?
¿Podrías darme un ejemplo del gráfico que quieres generar? ¿Siempre es el mismo tipo de gráfico? ¿Un mapa de calor? ¿Qué columnas se deben representar gráficamente?
¿La columna original frente a la recodificada? ¿Una tercera columna frente a la recodificada? ¿Recodificar dos columnas y graficarlas?