JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.안녕하세요,
내 JSL 코드에서는 다음을 사용하고 있습니다.
디티티<
그리고 표에서 레이블 아이콘이 skew 옆에 추가되는 것을 볼 수 있습니다. 그런 다음 그래프 빌더를 사용하고 해당 루틴 내에서
라벨 표시(1),
그런데 플롯을 생성할 때 라벨이 표시되지 않습니다. 이 문제를 해결해 주시겠어요? 다른 추가 사항이 있을까요?
감사합니다
자동화 및 스크립팅Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.일반적으로 왼쪽의 레이블 섹션에서 레이블을 활성화합니다(이는 플롯 유형마다 다를 수 있음)

그래프 빌더에 만족하면 스크립트를 복사하세요.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Cities.jmp");
dt << Set Label Columns(:City, :State);
gb = dt << Graph Builder(
Size(528, 454),
Show Control Panel(0),
Variables(X(:Longitude), Y(:Latitude)),
Elements(Points(X, Y, Legend(3), Label("Label by Row")))
);
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.제어판에서 라벨을 활성화해야 합니다.

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
:name<< Label( 1 ); // no effect, label is already activated by default for this column
Graph Builder(
Size( 451, 447 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Label( "Label by Row" ) ), Smoother( X, Y ) )
);

Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.-
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.팁은 고맙지만 아쉽게도 아직 작동하지 않습니다. JSL에서 해당 줄을 굵게 표시했습니다.
디티티<
dtt, byGroup0 = by (:layout)을 요약합니다.
요약(dtt, byGroup1 = by( :Label ));
요약(dtt, byGroup2 = by( :Vt_flavor));
요약(dtt, byGroup3 = by( :Z_width));
(nn = 1, nn <= N 항목(byGroup0), nn++,
(ii = 1, ii <= N 항목(byGroup1), ii++,
(jj = 1, jj <= N 항목(byGroup2), jj++,
(kk = 1, kk <= N 항목(byGroup3), kk++,
dtt << 선택 where(:레이블 == byGroup1[ii] & :Vt_flavor == byGroup2[jj] & :Z_width == byGroup3[kk] & :레이아웃 ==byGroup0[nn] );
//show(ii,jj,kk,bygroup1[ii],bygroup2[jj],bygroup3[kk]);
sel = dtt << 선택된 행을 가져옵니다.
(n 행(sel) > 0인 경우,
//show("내부",ii,jj,kk);
dt = dtt << subset(선택된 행(1), 선택된 열(0));
gb = dt << 그래프 빌더(
크기( 266, 228 ),
제어판 표시( 0 ),
변수(X( :nmos ), Y( :pmos ), 오버레이( :PDK ) ),
요소(점(X, Y, 범례(5), 레이블("행별 레이블"))),
라벨 표시(1),
보고서로 보내기(
보내다(
{},
"nmos",
스케일박스,
{레이블 행(
{주요 그리드 표시(1), 보조 레이블 표시(1), 보조 그리드 표시(1)}
)}
),
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.가능한 한 짧은 코드를 생성해 주시겠습니까?
예를 들어 데이터 테이블 로딩을 시작합니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
그리고 다음을 통해 게시하세요:

귀하의 질문에 대한 빠르고 유용한 답변을 받으세요
올바른 질문에 대한 올바른 답변을 빠르게 얻는 방법
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.어리석은 질문에 진심으로 사과드립니다. "레이블 활성화"라는 말씀이 무슨 뜻인지 잘 모르겠습니다. 데이터베이스에서 JSL을 실행하고 GUI를 클릭하지 않고 활성화만 하고 있습니다. 열을 "skew"로 설정하고 "행별 레이블"을 추가하라고 제안하신 대로 하면 될 것 같은데요. JSL 스크립트에서 활성화 부분(GUI를 클릭하지 않고)에 대해 자세히 설명해 주시겠습니까? 감사합니다.
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.또한 수백 개의 플롯을 생성하고 있기 때문에 클릭으로 활성화하는 것은 제 목적에 맞지 않습니다. 감사합니다.
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.코드를 공유해 주시면 확인해 보겠습니다.
JMP를 사용하는 똑똑하고 느긋한 방법:
GUI를 사용하고 JMP가 코드를 생성하게 하세요.
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.JSL 코드와 관련 데이터 테이블을 첨부했습니다. 또한 제 코드에서는 크기가 (266, 228)로 설정되어 있는데도 그래프 크기가 항상 (1401, 909)로 표시됩니다. 해당 부분도 확인해 주시면 감사하겠습니다. 시간 내어 도와주셔서 정말 감사합니다.
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.GUI를 사용하여 스크립트를 생성한다는 것은 한 번만 작성하고 스크립트를 복사한 후 JMP에서 생성된 JSL을 계속 사용한다는 것을 의미합니다. JMP가 스크립트를 제대로 생성할 수 있다면(예를 들어 플랫폼 실행 등) 최고의 JSL 스크립터가 될 것입니다.
문제 해결: 먼저 단일 그래프에 대한 문제를 해결하세요(즉, 루프를 삭제하고 하나의 부분 집합을 사용하세요). 의도한 대로 작동하도록 한 후, 디버깅이 훨씬 쉬워지도록 루프를 추가하세요. 그래프 하나에 대해 플롯을 실행하면 다음과 같은 결과가 나옵니다.

제 생각에는 그래픽 스크립트에 문제가 있는 것 같습니다. 그 안에서 무엇을 하려는 건지 정확히 모르겠네요.
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.코드를 그대로 사용하셨나요, 아니면 뭔가를 바꾸셨나요?
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.Names Default To Here(1);
dtt = Open("$DOWNLOADS/output_sorted_test.jmp");
dtt << Set Label Columns(:skew);
Summarize(dtt, byGroup0 = by(:layout));
Summarize(dtt, byGroup1 = by(:Label));
Summarize(dtt, byGroup2 = by(:Vt_flavor));
Summarize(dtt, byGroup3 = by(:Z_width));
nn = 1;
ii = 1;
jj = 1;
kk = 1;
dtt << select where(:Label == byGroup1[ii] & :Vt_flavor == byGroup2[jj] & :Z_width == byGroup3[kk] & :layout == byGroup0[nn]);
sel = dtt << get selected rows;
If(N Rows(sel) > 0,
dt = dtt << subset(selected rows(1), selected columns(0));
gb = dt << Graph Builder(
Size(266, 228),
Show Control Panel(0),
Variables(X(:nmos), Y(:pmos), Overlay(:PDK)),
Elements(Points(X, Y, legend(5), Label("Label by Row"))),
Show labels(1),
SendToReport(
Dispatch({}, "nmos", ScaleBox, {Label Row({Show Major Grid(1), Show Minor Labels(1), Show Minor Grid(1)})}),
Dispatch({}, "pmos", ScaleBox, {Label Row({Show Major Grid(1), Show Minor Labels(1), Show Minor Grid(1)})}),
Dispatch({}, "Graph Builder", FrameBox,
{Marker Size(6), Add Graphics Script(
6,
Description(""),
Summarize(dt, byGroup = by(:PDK));
colorList = {"Blue", "red", "Green", "Green"};
Fill Pattern([0]);
For(i = 1, i <= N Items(byGroup), i++,
Pen Color(colorList[i]);
theRows = dt << get rows where(
:PDK == byGroup[i] & :skew != "tttt" & :skew != "ff" & :skew != "fs" & :skew != "sf" & :skew != "ss"
);
If(Word(2, byGroup[i], "/") == "a",
Line Style("Dashed"),
);
theRows = theRows |/ theRows[1];
xMatrix = :nmos[theRows];
yMatrix = :pmos[theRows];
Line(xMatrix, yMatrix);
);
), Add Text Annotation(
Text(byGroup1[ii] || "_" || "Z" || byGroup3[kk] || "_" || bygroup2[jj] || "_" || bygroup0[nn]),
Background Color("White"),
Filled(0),
Font("Segoe UI", 14, "Plain")
)}
)
)
);
);
Write();
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.정말 이상하네요. 플롯 하나에서 시도해 봤는데, 왠지 레이블이 표시되지 않네요. 코드를 복사해서 실행해 봤는데도 레이블이 표시되지 않습니다. 아래는 플롯 하나에서 얻은 결과인데, 보시다시피 행별 레이블이 (예상대로) 표시되지 않습니다. 다시 추가하고 스크립트를 다시 실행해 보니 역시 레이블이 표시되지 않습니다.
Graph Builder(
Size( 1430, 909 ),
Show Control Panel( 0 ),
Variables( X( :nmos ), Y( :pmos ), Overlay( :PDK ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch( {}, "nmos", ScaleBox,
{Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 ), Show Minor Labels( 1 )} )}
),
Dispatch( {}, "pmos", ScaleBox,
{Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 ), Show Minor Labels( 1 )} )}
),
Dispatch( {}, "Graph Builder", FrameBox,
{Marker Size( 6 ), Marker Drawing Mode( "Normal" ),
Add Graphics Script(
5,
Description( "" ),
Summarize( dt, byGroup = by( :PDK ) );
colorList = {"Blue", "red", "Green", "Green"};
Fill Pattern( [0] );
For( i = 1, i <= N Items( byGroup ), i++,
Pen Color( colorList[i] );
theRows = dt << get rows where(
:PDK == byGroup[i] & :skew != "tttt" & :skew != "ff" & :skew != "fs" & :skew != "sf" &
:skew != "ss"
);
If( Word( 2, byGroup[i], "/" ) == "a",
Line Style( "Dashed" )
);
theRows = theRows |/ theRows[1];
xMatrix = :nmos[theRows];
yMatrix = :pmos[theRows];
Line( xMatrix, yMatrix );
);
), Add Text Annotation(
Text( "cgate_per_um_Z120_dev1_s9999019999d9999019999" ),
Fixed Size( 0 ),
Text Box( {87, 62, 341, 134} ),
Background Color( "White" ),
Font( "Segoe UI", 14, "Plain" ),
Filled( 0 )
)}
)
)
)
참고: TXNELSON이 더 쉽게 읽을 수 있도록 JSL이 JSL 객체에 복사되었습니다.
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.당신이 붙여넣은 스크립트는 내가 가지고 있는 스크립트와 같지 않습니다.
Elements(Points(X, Y, legend(5), Label("Label by Row"))),
Show labels(1),
당신이하지 않는
Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.(아래 스니펫) 그렇게 해봤는데도 그래프에 레이블이 안 들어가네요. 뭐가 문제인지 전혀 모르겠네요. 감사합니다.

Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.솔직히 저도 뭐가 문제인지 전혀 모르겠어요. 제가 제공해 주신 스크립트를 (창 크기를 약간 조절해서) 실행하면 JMP18에서 이런 현상이 발생합니다.

그리고 이것은 JMP19와 함께

Re: JSL 코딩 디버그 - "레이블"에 대한 도움이 필요합니다.JMP 버전을 업데이트해서 도움이 되는지 확인해 보겠습니다. 정말 감사합니다.