그래프 축 및 제목을 변수로 설정안녕하세요, 초보자입니다.
여러 번 반복할 것으로 예상되는 프로세스에서 일련의 데이터로 작업하고 있으므로 가능한 한 설정을 자동화하려고 합니다. 지금은 일부 데이터 프레젠테이션을 작업하고 있으며 셀 내용에 따라 그래프의 축 제목 변수를 만드는 데 도움이 필요합니다.
예를 들어 아래 데이터가 있습니다.

이 데이터에서 각 "Col A" 값에 대해 "Res"를 표시하는 그래프와 "Ref"를 표시하는 일련의 참조선(및 해당 경계 조건 "+/-uref" 및 "rob" 및 해당 경계 조건 "+/- urob".
현재 스크립트는 다음과 같습니다.
dt = Current Data Table();
Graph Builder(
Size( 743, 472 ),
Show Control Panel( 0 ),
Variables(
X( :COLA, Order By( :Res, Ascending, Order Statistic( "Mean" ) ) ),
Y( :Res ),
Interval( :Ures )
),
Elements( Points( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch(
{},
"COLA",
ScaleBox,
{Label Row(
{Label Orientation( "Vertical" ), Set Font Size( 12 ),
Set Font Style( "Italique" )}
)}
),
Dispatch(
{},
"Res",
ScaleBox,
{Min(), Max(), Inc(), Minor Ticks( 1 ),
Add Ref Line( dt[1, 11], "Solid", "Dark Blue", "", 1 ),
Add Ref Line( dt[1, 9], "Dotted", "Dark Blue", "", 1 ),
Add Ref Line( dt[1, 10], "Dotted", "Dark Blue", "", 1 ),
Add Ref Line( dt[1, 4], "Solid", "Dark Red", "", 1 ),
Add Ref Line( {dt[1, 7], dt[1, 8]}, "Solid", "Medium Dark Red", "", 1, 0.15 ),
Add Ref Line( dt[1, 7], "Dotted", "Dark Red", "", 1 ),
Add Ref Line( dt[1, 8], "Dotted", "Dark Red", "", 1 )}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Analyte res" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Text( "COLA" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Units of Res (g/m3)" )} ),
Dispatch( {}, "400", LegendBox, {Legend Position( {7, [-1, -3]} )} )
)
);
잘 작동하고 필요에 따라 셀 값에 따라 그래프의 참조선을 수정할 수 있을 만큼 유연합니다.
이제 제가 원하는 것은 제목이 참조선과 동일한 작업을 수행할 수 있도록 하는 것입니다. 따라서 이상적으로는 jmp 테이블에 초기 열을 추가할 수 있습니다. 이 열은 연구된 분석 물질에 대한 정보(이름, 측정에 사용된 단위 등)가 있는 "정보"라고 하며 그래프의 제목을 원합니다. (및 축)을 사용하여 이러한 셀에서 정보를 추출하고(현재 기준선이 수행하는 것처럼) 텍스트에서 이 정보를 사용합니다.
예를 들어, 내 "정보" 열에 "Zr4+"가 있는 경우 최종 그래프로 이동하여 이 셀을 찾고 이를 사용하여 자체 또는 해당 축 중 하나에 레이블을 지정하고 싶습니다. 그런 다음 셀을 다음으로 변경할 수 있습니다. "Br7-" 그리고 다음에 스크립트를 실행할 때 새 그래프에 "Br7-" 레이블이 지정됩니다.
이것이 가능합니까?
예를 들어 y축이 "Zr 4+ (mg/l)"이고 "Br7- (mg/l)"로 변경되는 것과 같이 변수를 더 긴 텍스트에 삽입할 수 있는 경우 보너스 포인트
대량 맞춤화윈도우Re: 그래프 축과 제목을 변수로 설정감사합니다,
나는 당신이 말한대로 가이드를 읽고 할 것입니다. 사실, JSL과의 작업은 내 인생에서 실제로 스크립팅/코딩을 수행한 첫 번째 작업이므로 아직 배워야 할 특정 논리가 많이 있습니다!
Re: 그래프 축과 제목을 변수로 설정문제는 TextEditBox()에 적절하게 구문이 지정된 요소를 제공하는 방법입니다.
Scripting Index에서 볼 수 있는 Set Text 사양은 다음과 같습니다.

따라서 기본적으로 제공되어야 하는 것은 "문자열"입니다.JSL에서는 거의 모든 것을 문자열에 넣을 수 있습니다.샘플 스크립트의 예에서
gbr[TextEditBox(1)] << set text(column(dt,"info")[1]);
"정보" 열의 첫 번째 행 값이 TextEditBox()로 전송되고 있으며 "Indo" 열의 모델링 유형이 문자이므로 각 셀의 값은 "문자열"입니다.
JSL을 사용하면 다양한 방법으로 문자열을 작성할 수 있습니다.시간을 내어 도움말 풀다운 메뉴에서 사용할 수 있는 JMP 문서 라이브러리에 있는 스크립팅 가이드를 읽어 보시기 바랍니다.
그러나 간단한 설명을 위해 "그래프 5 분석 해상도를 갖고 싶다면 간단히 다음과 같이 말할 수 있습니다.
gbr[TextEditBox(1)] << set text( "Graph 5 " || column(dt,"info")[1]);
TextEdibox()에 전달된 문자열은 "Graph 5" 문자열을 Info 열의 첫 번째 행에 있는 셀의 문자열과 연결하여 만든 문자열입니다.
Re: 그래프 축과 제목을 변수로 설정안녕 짐,
나는 스크립트와 축 제목을 조금 더 가지고 놀았습니다.
제공하신 솔루션은 기본적인 작업에 적합합니다. "텍스트 설정" 부분에 가변 요소와 고정 요소를 도입하는 방법이 있는지 궁금합니다.
결국, 당신이 저를 도와준 스크립트에서 저는 3~4개의 다른 그래프를 가져오고 있습니다. 이제 각 그래프의 제목이 한 셀에서 텍스트를 가져와서 다른 텍스트에 통합하도록 하고 싶습니다(다른 셀에서 또는 직접 작성됨). 대본으로, 나는 까다롭지 않다.
나 자신을 설명하기 위해 현재 내 그래프의 제목은 "analyte res"(이미 이전 위치보다 훨씬 앞서 있음)로 끝날 것입니다. 한 단계 더 나아가 "graph 5 : [Analyte res]" "analyte res" 부분만 변경하면 제목이 변경됩니다. 비슷한 방식으로 y축에 "[분석물] [측정된 양(질량, 농도, 부피, ...)] [단위(g, mg/L, cm3... )]" 그런 다음 각각의 다른 그래프에 대한 필요에 따라 선택한 셀의 세 변수를 각각 변경할 수 있습니다.
"텍스트 설정" 매개변수를 가지고 놀았지만 그런 혼합 시스템(또는 여러 셀에서 가져오기)을 좋아하지 않는 것 같습니다. 그래서 가장 유망한 해결 방법은 제목과 y축 옆에 텍스트 상자를 추가하는 것입니다. 물론 우아한 해결책은 아니지만 어떤 경우에는 두 텍스트 상자가 겹치지 않도록 주의해야 합니다. ...
어떤 아이디어?
Re: 그래프 축과 제목을 변수로 설정) 친애하는 짐, 고마워요.
Re: 그래프 축과 제목을 변수로 설정데이터 테이블에 새 정보 열을 추가했습니다.

그리고 레이블 값을 가져오는 데 사용하도록 스크립트를 수정했습니다.또한 차트에 참조선을 추가하는 보다 직접적인 방법을 사용하도록 스크립트를 수정했습니다.

Names Default To Here( 1 );
dt = Current Data Table();
gb = dt << Graph Builder(
Size( 743, 472 ),
Show Control Panel( 0 ),
Variables( X( :COLA, Order By( :Res, Ascending, Order Statistic( "Mean" ) ) ), Y( :Res ), Interval( :Ures ) ),
Elements( Points( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch( {}, "COLA", ScaleBox, {Label Row( {Label Orientation( "Vertical" ), Set Font Size( 12 ), Set Font Style( "Italique" )} )} ),
Dispatch( {}, "Res", ScaleBox, {Min(), Max(), Inc(), Minor Ticks( 1 )} ),
Dispatch( {}, "400", LegendBox, {Legend Position( {7, [-1, -3]} )} )
)
);
gbr = gb << report;
gbr[AxisBox( 2 )] << Add Ref Line( dt[1, 11], "Solid", "Dark Blue", "", 1 );
gbr[AxisBox( 2 )] << Add Ref Line( dt[1, 9], "Dotted", "Dark Blue", "", 1 );
gbr[AxisBox( 2 )] << Add Ref Line( dt[1, 10], "Dotted", "Dark Blue", "", 1 );
gbr[AxisBox( 2 )] << Add Ref Line( dt[1, 4], "Solid", "Dark Red", "", 1 );
gbr[AxisBox( 2 )] << Add Ref Line( {dt[1, 7], dt[1, 8]}, "Solid", "Medium Dark Red", "", 1, 0.15 );
gbr[AxisBox( 2 )] << Add Ref Line( dt[1, 7], "Dotted", "Dark Red", "", 1 );
gbr[AxisBox( 2 )] << Add Ref Line( dt[1, 8], "Dotted", "Dark Red", "", 1 );
gbr[TextEditBox(1)] << set text(column(dt,"info")[1]);
gbr[TextEditBox(3)] << set text(column(dt,"info")[2]);
gbr[TextEditBox(4)] << set text(column(dt,"info")[3]);