Tracé de la carte d'une plaquette de semi-conducteurs. Comment corriger l'erreur ?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.")
);
)
)
);WorkFlow : Sélectionner le tableau --> Sélectionner la colonne à recoder --> Recoder la colonne (besoin d'aide pour permettre le recodage des colonnes de caractères et numériques) ---> Actualiser la liste des colonnes --> Sélectionner une ou plusieurs colonnes --> Tracer une carte thermique
Besoin d'aide 1) déboguer le script actuel où je peux recoder uniquement les colonnes de type de données numériques
2) Comment inclure la sélection des colonnes de type Caractère à recoder ?
3) Puis-je autrement ouvrir le préréglage de l'interface utilisateur de recodage par jmp (colonnes--> Recode) dans le cadre de l'interface utilisateur ?
Analyse et modélisation de données de baseFusion et nettoyage des donnéesFenêtresRe: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Ce code semble avoir été créé par un LLM, il contient donc de nombreuses petites erreurs et utilisations de fonctions que JMP ne possède pas. Pourriez-vous fournir un exemple de tableau contenant également le résultat correct et une explication de sa provenance.
Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?
Voici l'exemple : vous recodez le « numéro de lot » pour le regrouper et la carte thermique du tracé à l'aide de la « colonne recodée »

Exemple 2 : les testeurs sont regroupés, puis la carte thermique est tracée à l'aide de la colonne recodée
J'espère que cela aide
Merci
Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Sur quoi est basé le regroupement ? Des lignes consécutives ?
Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Oui ou en utilisant la colonne recodée
Par exemple, où : colonne recodée = 1 (regroupant ainsi les testeurs 1 et 2)Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Je ne sais toujours pas comment le testeur 3 est censé se transformer en 2 ou quel type de carte thermique vous recherchez à partir de ces deux colonnes seulement




Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Quelle est la règle à utiliser pour le recodage ? D'après votre exemple, il semble que le recodage consiste simplement à prendre les lignes 1 et 2 et à les regrouper, puis à prendre les lignes 3 et 4 et à les regrouper, etc., le premier groupement ayant la valeur 1, le second groupement la valeur 2, etc.
Si tel est le cas, la formule de la colonne recodée est simplement
Ceiling(Row() / 2)
Est-ce ce que vous recherchez ? Cela fonctionnera à la fois pour les données de caractères et numériques car cela ne dépend pas des valeurs de lot_no ou de tester, mais uniquement du numéro de ligne
Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Le recodage doit être sélectionné à l'aide de l'interface utilisateur et peut changer en fonction de l'utilisateur. Une fois que le recodage des colonnes est déclenché, l'utilisateur peut recoder comme il le souhaite, puis ajouter la nouvelle colonne. L'utilisateur est ensuite invité à sélectionner la nouvelle colonne et à l'utiliser pour configurer le tracé. Ce qui précède n'était qu'un exempleRe: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?la colonne recodée peut être placée sous forme de page (: colonne recodée) J'ai besoin d'aide pour savoir comment déclencher le recodage de la colonne sélectionnée, puis l'ajouter à la liste des colonnes lors de l'actualisationRe: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Vous souhaitez donc disposer d’une interface utilisateur capable de
- Permettre à l'utilisateur de sélectionner la ou les colonnes
- Déclencher la plate-forme de recodage de JMP sur la ou les colonnes sélectionnées
- Empêcher l'utilisateur d'utiliser l'opération sur place
- Détecter quelles nouvelles colonnes ont été créées
- Créer un tracé basé sur les colonnes nouvellement créées
?
Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Oui!Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Cela n’est peut-être pas aussi simple que vous le pensez si vous souhaitez permettre aux utilisateurs d’utiliser librement la plateforme de recodage.
Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Existe-t-il un moyen de le faire ? Ou une autre approche pour automatiser ces tâches dans cet ordre ?
MerciRe: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Je pense que vous devriez repenser les spécifications de votre script. Ce que vous devez avoir, ce que les utilisateurs pourraient faire en utilisant les plateformes JMP, pourraient-ils exécuter votre script après avoir utilisé le recodage et sélectionné ces nouvelles colonnes, etc.
Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?une liste de colonnes pourrait suffire - via les 2 boutons, l'utilisateur peut décider s'il souhaite recoder ou tracer les colonnes sélectionnées :

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: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Ok merci. Existe-t-il un moyen de recoder une colonne, puis de tracer un graphique en utilisant cette colonne ? ou d'ouvrir une nouvelle interface graphique pour le tracer ?
Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Oui.
Sélectionnez simplement la colonne, recodez-la (via le remplacement), puis cliquez sur le bouton de tracé.
Actuellement, il faut sélectionner 2 colonnes (pour x et y) pour générer une carte thermique significative. Il suffit d'ajuster le code pour générer le tracé dont vous avez besoin.Re: Tracé de la carte des plaquettes de semi-conducteurs. Comment corriger l'erreur ?Pourriez-vous expliquer pourquoi vous souhaitez mettre en place un workflow qui combine les 2 étapes :
- recode
- parcelle
Le recodage est une étape très courante, mais dans la plupart des cas, elle fait partie d'un flux de travail de curation des données , qui est en quelque sorte distinct de l'analyse des données. Pourquoi souhaitez-vous combiner les 2 étapes ?
Les utilisateurs doivent-ils recoder les colonnes à chaque fois avant de pouvoir les tracer ?
Une fois que l'utilisateur A a recodé la colonne, l'utilisateur B peut prendre la colonne recodée et n'a pas besoin de la recoder à nouveau. Ou préférez-vous des « colonnes virtuelles » [colonnes de transformation] qui disparaîtront après l'utilisateur A de telle sorte que l'utilisateur B puisse définir son propre recodage.
Pourriez-vous donner un exemple du tracé que vous souhaitez générer. S'agit-il toujours du même type de tracé ? D'une Heatmap ? Quelles colonnes doivent être tracées ?
la colonne d'origine par rapport à celle recodée ? une 3ème colonne par rapport à la colonne recodée ? recoder 2 colonnes et les tracer ?