[Script JLS] : 여러 그래프를 함께 플로팅하기 위한 루프안녕하세요,
저는 JMP가 처음입니다. 그것은 강력한 소프트웨어입니다!
그렇기 때문에 하나의 X의 기능으로 다른 열(실제로 n 열마다)에서 여러 Y를 그릴 수 있는 스크립트를 작성하고 싶습니다.
그래프 빌더 인터페이스 덕분에 작성했지만 루프에서 스크립팅하고 싶습니다.
분포도를 그리려고 그런식으로 해봤는데 (아쉽게도 같은 축척은 아니네요...)
//Distributions Std Dev
New Window( "Side by Side",
H List Box(
Distribution(
Continuous Distribution( Column( :median_range_mm ))
);
for ( p = 2, p <= 64, p++,
nom = "median_range_mm " || char(p);
col = Column(nom);
Distribution(
Continuous Distribution( Column( col ), Std Error Bars( 1 ) );
/*SendToReport(
Dispatch(
{"Distributions", Column( col )},
"1",
ScaleBox,
{Min( 1450 ), Max( 1820 ), Inc( 20 ), Minor Ticks( 0 ),
Label Row Nesting( 1 )}
)
)*/
)
)
)
이것은 내 주요 문제에 대해 시도한 것입니다. 결과는 그래프 빌더의 여는 창입니다.
Y 축에 [ref, ref 1 , ref 2 until ref 64] 열을, X 축에 currentTimeMillis 열을 플롯하고 싶습니다.
New Window( "Ref",
H List Box(
Graph Builder(
For (r = 2 , r <= 64, r++,
name = "ref " || char(r);
col = Column(name);
Variables( X( :currentTimeMillis ), Y (Column (col), Position( 1 ) ) ),
Elements(
Points( X, Y(r) , Legend( 29 ) ),
Smoother( X , Y(r), Legend( 30 ) )
),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( strTitle )}
)
)
)
)
)
);당신의 도움을 주셔서 감사합니다.
건배
Re: [Script JLS] : 여러 그래프를 함께 플로팅하기 위한 루프미리 생성한 다음 사용자 요청에 따라 표시할 수 있는 출력 개체를 쉽게 생성할 수 있습니다.또는 JMP의 속도 때문에 많은 응용 프로그램이 사용자 요청 시 특정 출력을 생성합니다.또한 사용자가 목록에서 선택하고 분석하고 표시할 열을 선택할 수 있는 열 전환기를 탐색해야 합니다.
Re: [Script JLS] : 여러 그래프를 함께 플로팅하기 위한 루프단일 H 목록 상자에 모두 표시하는 대신 나중에 사용하기 위해 개별 그래프(예: 쉬운 액세스 목록)를 저장할 수 있습니까?감사합니다.
Re: [Script JLS] : 여러 그래프를 함께 플로팅하기 위한 루프나는 약간 혼란 스럽습니다 .....하지만 솔루션의 가능한 예로이 코드를 제공합니다.제공한 마지막 코드에서 데이터 테이블의 열 이름을 "Ref"로 변경하는 것으로 나타납니다.JMP에서는 이름이 같은 열이 2개 있을 수 없으므로 "Ref"로 이름을 변경하려는 두 번째 열의 이름은 실제로 "Ref 2"로 지정됩니다.그리고 그것은 "Ref 64"열을 통해 끝까지 계속됩니다.또한 "currentTimeMillis" 열의 이름을 지정하기 위해 코드를 다시 확인하는 것이 좋습니다.코드에서 실제로 해당 열의 이름을 같은 이름으로 64번 바꿉니다.
아래는 내 새 코드입니다......샘플 데이터 테이블을 사용합니다.......Ref - Ref 64라는 열은 모두 연속적인 순서로 되어 있지만 JMP는 실제로 신경쓰지 않기 때문에 코드는 열이 700개 이상의 열에 분산되어 있는 데이터 테이블에서도 작동합니다.
Names Default To Here( 1 );
// Build some sample data
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
Column( dt, 6 ) << set name( "ref" );
For( i = 7, i <= 69, i++,
Column( dt, i ) << set name( "ref " || Char( i - 5 ) )
);
Column( dt, 5 ) << set name( "currentTimeMillis" );
// Build the JSL code for the Graph Builder
theExpr = "dt << Graph Builder(
Variables(
X( :currentTimeMillis ),
Y( :ref )";
For( i = 2, i <= 64, i++,
theExpr = theExpr || ",Y( :ref " || Char( i ) || ", Position( 1 ) )"
);
theExpr = theExpr || "),
Elements(
Points(
X";
For( i = 2, i <= 64, i++,
theExpr = theExpr || ",Y( " || Char( i ) || ")"
);
theExpr = theExpr || "
,Legend( 5 )
),
Smoother(
X";
For( i = 2, i <= 64, i++,
theExpr = theExpr || ",Y( " || Char( i ) || ")"
);
theExpr = theExpr || " ,
Legend( 6 )
)
)
)";
// Execute the generated code
Eval( Parse( theExpr ) );
Re: [Script JLS] : 여러 그래프를 함께 플로팅하기 위한 루프답장을 보내 주셔서 감사합니다.
그러나 나는 내 문제를 잘못 표현했을 수 있습니다.
사실, 나는 갖고 싶다 동일한 그래프의 모든 플롯 .
또한 내 Y 열은 이미 11열마다 설정되었으며 currentTimeMillis는 처음에 한 번만 나타납니다.
//Set columns
For( i = 1, i <=709 , i++,
For ( j = 0, j <= 63, j++,
If ( i == 2, Column(i) << set name( "currentTimeMillis" ),i == 15 + 11*j, Column(i) << set name( "ref" ),
)
)
)마지막으로 "__col__"은 정의되지 않았으므로( "col"은 정의되었지만 배포를 위한 다른 함수에 있음) 여기에서 사용한 이유를 이해할 수 없습니다.
다시 한번 감사드립니다.
Re: [Script JLS] : 여러 그래프를 함께 플로팅하기 위한 루프다음은 내가 어떻게 할 것인지에 대한 예입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
For( i = 6, i <= 69, i++,
Column( dt, i ) << set name( "ref " || Char( i - 5 ) )
);
Column( dt, 5 ) << set name( "currentTimeMillis" );
New Window( "Ref",
hlb = H List Box(
)
);
For( r = 2, r <= 64, r++,
name = "ref " || Char( r );
Eval(
Substitute(
Expr(
outputhlb = H List Box(
Graph Builder(
Variables(
X( :currentTimeMillis ),
Y( Column( __col__ ), Position( 1 ) )
),
Elements(
Points( X, Y( r ), Legend( 29 ) ),
Smoother( X, Y( r ), Legend( 30 ) )
),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( strTitle )}
)
)
)
)
),
Expr( __col__ ), Parse( ":" || name )
)
);
hlb << append( outputhlb );
);