그래프 빌더에 텍스트 주석 추가안녕하세요,
웨이퍼 맵의 각 레티클에 텍스트 주석을 추가하는 그래픽 스크립트를 작성하는 방법이 있습니까?
또한, 'Ret'와 '%Fail' 두 열을 색칠하고, %Fail 열과 Ret 열을 겹쳐서 히트맵을 만들고 싶습니다. GB에서 가능할까요?
사랑
자동화 및 스크립팅데이터 탐색 및 시각화Re: 그래프 빌더에 텍스트 주석 추가이 경우 두 개의 열을 어떻게 채색해야 할까요? 레티클은 기본 색상을 정의하고 %Fail은 그라데이션이나 비슷한 방식으로 지정할 수 있을까요? 이러한 유형의 분석을 위해 셰이프 맵 파일을 만드는 것을 고려해 보셨나요?
그래픽 스크립트를 사용하여 텍스트 주석을 추가할 수 있습니다.
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: 그래프 빌더에 텍스트 주석 추가안녕하세요 @jthi ,
셰이프 맵을 시도해 보았지만 행이 100만 개나 있어서 JMP 속도가 느려졌습니다.
그래픽 스크립트를 사용하여 레티클 주위에 테두리를 그릴 수 있는 방법이 있는지 생각하고 있었습니다. 웨이퍼 맵에서 해당 레티클을 테두리로 표시하면 레티클을 구별할 수 있고, 그런 다음 범례의 색상 선택에 %Fail을 추가할 수 있습니다.
감사해요,
Re: 그래프 빌더에 텍스트 주석 추가이런 식으로 할 수 있습니다

아니면 히트맵으로 할 수도 있겠지

Re: 그래프 빌더에 텍스트 주석 추가@jthi 정말 멋지네요. 코드 공유해 주실 수 있나요?
Re: 그래프 빌더에 텍스트 주석 추가/*""" 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));
);
));
);
루프를 그래픽 스크립트 내부로 옮기고 루프 스크립트를 만들지 않을 수도 있습니다(어느 쪽이 더 나을지는 테스트하지 않았습니다).
편집: 최종 솔루션 이미지 추가
