JSL (그래프 빌더)에서 범례 이름을 변경하는 방법은 무엇입니까?CSV 파일 (많은 열, 많은 행)에 많은 데이터를 가져오고 그래프 생성을 표준화하기 위해 JSL의 기본 템플릿을 작업하고 있습니다. (축 크기 조정, 축 이름 변경, 선 색상 표준화 등 ...) 평균적으로 하루에 하나의 CSV 파일을 얻을 수 있으므로 데이터를 JMP 데이터 테이블에 넣고 스크립트를 실행하고 그래프 출력은 모두 자동화되었습니다.
내 JMP 파일에는 기본적으로 태그 이름이 그래프 범례로 전혀 유익하지 않은 열 헤더로 있습니다. 한 가지 방법은 모든 열의 이름을 바꾸는 것이지만 태그 이름을 유지하고 따라서 범례 설정에서 텍스트를 직접 조작하는 것을 선호합니다. (그러나 수동이 아닌 JSL로 수행됩니다.)
다음과 같이 범례 상자에 쉽게 액세스 할 수 있습니다.
gbR = gb << Report; // gbR << Show Tree Structure;
s = gbR[legendbox(1)];
s << Set Title("new title");첨부 된 PNG에서 아이디어를 볼 수 있습니다.
이제 막힌 부분은 범례 상자 (제목 제외)의 텍스트에 액세스하여 JSL을 사용하여 조작하고 변경할 수있는 방법입니다.
그래프 빌더에 의해 생성 된 스크립트가 "범례 모델"과 "레벨 이름"에 대해 말하는 것을 알지만 제가 시도한 수많은 작업에서 성공하지 못했습니다.
이에 대한 지침은 가장 감사하겠습니다.
말했듯이 JSL을 사용하여 범례 텍스트에 액세스하여 기본값에서 변경하는 방법은 무엇입니까?
감사.
스크립팅Re : JSL (그래프 빌더)에서 범례 이름을 변경하는 방법은 무엇입니까?범례 Box ()에 대한 스크립팅 색인의 세부 정보에는 범례의 실제 레이블 변경을 허용하는 메시지가 표시되지 않습니다. 그러나 범례의 값은 데이터 테이블의 값에서 직접 가져 오므로 데이터 테이블의 값을 변경 / 재 코딩하거나 "값 레이블"열 속성을 설정하기 만하면됩니다.Re : JSL (그래프 빌더)에서 범례 이름을 변경하는 방법은 무엇입니까?분명한 것을 놓친 적이 없음을 확인해 주셔서 감사합니다.
안타깝게도 "가치 레이블"이 내가 원하는 것을 어떻게 할 수 있는지 알 수 없습니다 (또는 볼 수 없습니다). 내 목표는 열 제목 아래의 행에있는 데이터 값을 조작하는 것이 아니라 열 이름을 효과적으로 수정하는 것입니다.
주어진 열에 대해 "Set Name"을 사용하면 범례의 텍스트에 몇 개의 값이있는 간단한 테이블을 만들면 예를 들어 "Column (dt, 1) << Set Name ("New name ");"이 변경됩니다. 이 한 줄의 구문으로 인해 열 1의 데이터에 대한 텍스트가 업데이트되고 "새 이름"이됩니다.
실제 데이터의 그래프에는 "Mean (… Tag Name…)"유형의 범례 텍스트가 있습니다. 실제 데이터에 << Set Name을 사용하면 "Mean (… column name…)"이 포함되어 있기 때문에 여전히 문제가있는 범례 텍스트가 있습니다.
주어진 열의 범례 텍스트를 조작하는 방법에 대한 아이디어는 알아두면 좋을 것입니다. 아마도 내가 처음부터 전설을 만들어서 그러한 "자체 제작"전설의 모든 속성을 접근하고 조작 할 수 있도록 할 수도 있습니다. 새 그래프를 만들 때마다 (아마도 매일) 수동으로주의를 기울일 필요가없는 것이 아니라 스크립팅 된 것입니다.
Re : JSL (그래프 빌더)에서 범례 이름을 변경하는 방법은 무엇입니까?그래프 빌더 스크립트에서 다음과 같이 할 수 있습니까?
Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
4,
Level Name( 0, "abcd", Item ID( "Mean(height)", 1 ) ),
Level Name( 1, "efgh", Item ID( "Mean(weight)", 1 ) )
)}
),
Dispatch( {}, "400", LegendBox, {Set Title( "My Title" )} )
)
);Re : JSL (그래프 빌더)에서 범례 이름을 변경하는 방법은 무엇입니까?감사. 예, 가능합니다. 다른 그래프를 염두에두고 있으므로 범례 텍스트에 대해 원하는 이름을 캡처하려면 변수가 필요하다고 생각합니까?
예를 들어 Graph Builder 구문 예에 따라 다음과 같이하십시오.
_Legend1 = "abcd";
_Legend2 = "efgh";
그렇다면 변수 사용을 관리하기 위해 아래를 사용해야합니까?
Eval(
Substitute(
Expr(
마지막으로,이 옵션이 범례 텍스트를보다 "직접"조작 할 수있는 유일한 방법일까요?
Re : JSL (그래프 빌더)에서 범례 이름을 변경하는 방법은 무엇입니까?이것은 또 다른 가능성입니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) )
);
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");
항목 가져 오기의 첫 번째 숫자는 그래프 빌더의 범례 매개 변수 값입니다. 두 번째 숫자는 그 범례에 대한 색인이 될 것입니다. 우리가 항상 모든 범례를 보여주지는 않기 때문에 때때로이 숫자를 맞추는 것이 까다로울 수 있습니다. 범례의 전체 목록을 보려면 범례 설정으로 이동하십시오.
Re : JSL (그래프 빌더)에서 범례 이름을 변경하는 방법은 무엇입니까?폴에게,
첨부 된 PNG에서 그래프 빌더 출력을 볼 수 있습니다.
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");나는 범례에 대한 텍스트에서 다르지 않다는 것을 알았습니다. 나는 당신의 구문 논리를 따르지만 그로부터 어떤 영향도 보지 않습니다.
두 번째 PNG에서는 전체 구문을 실행 한 후 내가 볼 것이라고 생각했던 것을 볼 수 있습니다.
그래도이 문제를 살펴보고 나에게 매우 감사 할 방법을 알려주세요. 고마워, 스콧.
Re : JSL (그래프 빌더)에서 범례 이름을 변경하는 방법은 무엇입니까?죄송 해요. 이것은 JMP 16의 새로운 기능입니다. 방금 추가되었고 JMP 15에서 사용할 수 없다는 것을 몰랐습니다. JMP 16을 사용할 수있을 때까지 첫 번째 방법을 시도해야합니다. 다시 한 번 잘못된 정보에 대해 사과드립니다.