Grafico della mappa dei wafer semiconduttori. Come posso correggere l'errore?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.")
);
)
)
);Flusso di lavoro: seleziona tabella--> seleziona colonna da ricodificare--> ricodifica colonna (serve aiuto per consentire la ricodifica sia per la colonna di caratteri che per quella numerica)---> aggiorna elenco colonne--> seleziona una o più colonne--> traccia mappa termica
Serve aiuto 1) per eseguire il debug dello script corrente in cui posso ricodificare solo colonne di tipo dati numerici
2) Come includere la selezione delle colonne di tipo Carattere da ricodificare?
3) In alternativa, posso aprire il preset dell'interfaccia utente di Recode tramite jmp(columns--> Recode) come parte dell'interfaccia utente?
Analisi e modellazione dei dati di baseFusione e pulizia dei datiFinestreRe: Tracciato mappa wafer semicon. Come posso correggere l'errore?Questo codice sembra creato da qualche LLM, quindi ci sono molti piccoli errori e utilizzi di funzioni che JMP non ha. Potresti fornire una tabella di esempio che contenga anche il risultato corretto e la spiegazione da dove proviene?
Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?
Questo è un esempio: ricodificare "lotto n." per raggrupparlo e tracciare la mappa di calore utilizzando la "colonna ricodificata"

Esempio 2: i tester vengono raggruppati e quindi la mappa di calore viene tracciata utilizzando la colonna ricodificata
Spero che questo aiuti
Grazie
Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?Su cosa si basa il raggruppamento? Sulle righe consecutive?
Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?Sì o utilizzando la colonna ricodificata
Ad esempio dove: colonna ricodificata = 1 (raggruppando così i tester 1 e 2)Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?Non sono ancora sicuro di come il tester 3 dovrebbe trasformarsi in 2 o che tipo di mappa di calore stai guardando solo da queste due colonne




Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?Qual è la regola da usare per la ricodifica? Dal tuo esempio, sembra che la ricodifica consista semplicemente nel prendere le righe 1 e 2 e raggrupparle, quindi prendere le righe 3 e 4 e raggrupparle, ecc. con il primo raggruppamento a cui viene assegnato il valore 1 e il secondo il valore 2, ecc.
Se questo è il caso, la formula della colonna ricodificata è semplicemente
Ceiling(Row() / 2)
È questo che stai cercando? Funzionerà sia per i dati di tipo carattere che per quelli numerici, poiché non dipende dai valori di lot_no o tester, ma solo dal numero di riga
Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?La ricodifica deve essere selezionata tramite l'interfaccia utente e può cambiare a seconda dell'utente. Una volta che le colonne di ricodifica sono attivate, l'utente può ricodificare come desidera e quindi aggiungere la nuova colonna. Quindi all'utente viene chiesto di selezionare la nuova colonna e di usarla per configurare il grafico. Quello sopra era solo un esempioRe: Tracciato mappa wafer semicon. Come posso correggere l'errore?la colonna ricodificata può essere posizionata come page(:recoded column) Ho bisogno di aiuto su come attivare la ricodifica della colonna selezionata e quindi aggiungerla all'elenco delle colonne quando viene aggiornataRe: Tracciato mappa wafer semicon. Come posso correggere l'errore?Quindi desideri avere un'interfaccia utente in grado di
- Consenti all'utente di selezionare le colonne
- Attiva la piattaforma di ricodifica JMP sulle colonne selezionate
- Impedisci all'utente di utilizzare l'operazione in loco
- Rileva quali nuove colonne sono state create
- Crea un grafico in base alle colonne appena create
?
Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?SÌ!Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?Potrebbe non essere così semplice come pensi se vuoi che gli utenti utilizzino liberamente la piattaforma recode.
Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?C'è un modo per farlo? O un altro approccio per automatizzare queste attività in quell'ordine?
GrazieRe: Tracciato mappa wafer semicon. Come posso correggere l'errore?Penso che dovresti riconsiderare le specifiche che hai per il tuo script. Cosa devi avere, cosa potrebbero fare gli utenti usando le piattaforme di JMP, potrebbero eseguire il tuo script dopo aver usato recode e selezionato quelle nuove colonne,... e così via
Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?potrebbe bastare un elenco di colonne: tramite i 2 pulsanti l'utente può decidere se vuole ricodificare o tracciare le colonne selezionate:

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: Tracciato mappa wafer semicon. Come posso correggere l'errore?Ok, grazie. C'è un modo per ricodificare una colonna e poi tracciare un grafico utilizzando quella colonna? O aprire una nuova interfaccia grafica per tracciarla?
Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?SÌ.
Basta selezionare la colonna, ricodificarla (tramite sostituzione), quindi fare clic sul pulsante del grafico.
Al momento servono 2 colonne selezionate (per x e y) per generare una mappa di calore significativa. Basta adattare il codice per generare il grafico di cui hai bisogno.Re: Tracciato mappa wafer semicon. Come posso correggere l'errore?Potresti spiegare perché vuoi impostare un flusso di lavoro che combini i 2 passaggi:
- ricodificare
- complotto
Recode è un passaggio molto comune, ma nella maggior parte dei casi fa parte di un flusso di lavoro di data curation , che è in un certo senso separato dall'analisi dei dati. Perché vuoi combinare i 2 passaggi?
Gli utenti devono ricodificare le colonne ogni volta prima di poterle rappresentare graficamente?
Dopo che l'utente A ha ricodificato la colonna, l'utente B può prendere la colonna ricodificata e non deve ricodificare di nuovo. Oppure preferisci delle "colonne virtuali" [colonne di trasformazione] che scompariranno dopo che l'utente A ha ricodificato in modo che l'utente B possa definire la propria ricodifica.
Potresti fare un esempio del grafico che vuoi generare? È sempre lo stesso tipo di grafico? Una Heatmap? Quali colonne dovrebbero essere tracciate?
la colonna originale rispetto a quella ricodificata? una terza colonna rispetto a quella ricodificata? ricodificare 2 colonne e rappresentarle graficamente?