Aggiungi annotazioni di testo sul Graph BuilderCiao,
Esiste un modo per scrivere uno script grafico per aggiungere annotazioni di testo a ciascun reticolo sulla mappa wafer?
Inoltre, vorrei colorare due colonne, "Ret" e "%Fail", creare una mappa termica con la colonna "%Fail" e sovrapporre la colonna "Ret". È possibile su GB?
AMORE
Automazione e scriptingEsplorazione e visualizzazione dei datiRe: Aggiungere annotazioni di testo nel Graph BuilderCome coloreresti con due colonne in questo caso? Il reticolo definirebbe il colore principale e %Fail il gradiente, o qualcosa di simile? Hai mai pensato di creare un file shapemap per questo tipo di analisi?
È possibile utilizzare lo script grafico per aggiungere l'annotazione del testo
Names Default To Here(1);
dt = Current Data Table();
gb = dt << Graph Builder(
Size(979, 588),
Variables(X(:X), Y(:Y), Overlay(:Ret)),
Elements(Points(X, Y, Legend(10)), Smoother(X, Y, Legend(11)))
);
Summarize(dt, rets = By(:Ret), mx = Mean(:X), my = Mean(Y));
// Lazy option without evaluation
Report(gb)[FrameBox(1)] << Add Graphics Script(
For(i = 1, i <= N Items(rets), i++,
Text Color("Black");
Text Size(12);
Pen Color("Black");
Pen Size(3);
Text(Boxed, Erased, Center Justified, {mx[i], my[i]}, rets[i]);
);
);

Re: Aggiungere annotazioni di testo al Graph BuilderCiao @jthi ,
Ho provato la mappa shap, ma rallenta JMP perché ho 1 milione di righe.
Stavo pensando se c'è un modo per disegnare il bordo attorno ai reticoli usando uno script grafico, posso bordare quei reticoli sulla mappa wafer e questo mi permetterà di distinguere i reticoli, e poi posso aggiungere %Fail alla selezione del colore nella legenda
Grazie,
Re: Aggiungere annotazioni di testo al Graph BuilderPuoi fare qualcosa del genere

o forse con una mappa di calore

Re: Aggiungere annotazioni di testo al Graph Builder@jthi Sembra fantastico. Puoi condividere il codice?
Re: Aggiungere annotazioni di testo nel Graph Builder/*""" Reticle outline and names
Author: jthi
Creation Date: 2025-06-25
Creation JMP Version: JMP Pro 18.2.0
"""*/
Names Default To Here(1);
dt = Open("$DOWNLOADS/dataTable.jmp");
Summarize(dt, rets = By(:Ret));
aa = Associative Array();
For Each({curret}, rets,
r = dt << Get Rows Where(:Ret == curret);
tri = Triangulation(X(dt[r, "X"], dt[r, "Y"]));
path = tri << Get Hull Path;
aa[curret] = Associative Array();
aa[curret]["Path"] = path;
aa[curret]["X"] = Median(dt[r, "X"]);
aa[curret]["Y"] = Median(dt[r, "Y"]);
);
gb = dt << Graph Builder(
Size(937, 542),
Show Control Panel(0),
Variables(X(:X), Y(:Y), Color(:"%Fail"n)),
Elements(Points(X, Y, Legend(10)))
);
For Each({{retname, param}}, aa,
Eval(EvalExpr(
Report(gb)[FrameBox(1)] << Add Graphics Script(
Pen Color("Red"); // outline color for reticles
Pen Size(3); // reticle outline size
Path(Expr(param["Path"]), 0); // plots reticle outline
Text Color("Black"); // text color
Text Size(10); // text size for reticle
Pen Color("Black"); // text box outline color
Pen Size(2); // outline size for text box
Text(Boxed, Erased, Center Justified, {Expr(param["X"]), Expr(param["Y"])}, Expr(retname));
);
));
);
Potresti potenzialmente spostare il ciclo all'interno dello script grafico ed evitare di creare script ciclici (non ho testato quale sarebbe la soluzione migliore).
Modifica: aggiunta l'immagine della soluzione finale
