분포도에서 그룹화된 여러 열 스크립팅분포에서 함께 그룹화되는 여러 매개 변수 열을 플로팅하는 방법을 스크립팅하려고 합니다(그림 참조). 내 문제는 코드에 각 매개 변수 열에 대해 별도의 "연속 배포" 행이 필요하다는 것입니다. 내 데이터 가져오기에는 내가 수행하는 작업에 따라 다른 열 이름과 플롯할 열 수가 있습니다. 각 매개변수에 대한 개별 플롯을 반복하고 생성하는 대신 해당 열 이름 목록을 가져와 아래에 표시된 대로 그룹으로 플롯하는 방법을 알 수 없습니다.
Distribution(
Continuous Distribution( Column( :Parameter1 ) ),
Continuous Distribution( Column( :Parameter2 ) ),
Continuous Distribution( Column( :Parameter3 ) )
);

Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.문제를 처리하는 방법은 다음과 같습니다.
names default to here(1);
dt=open("$SAMPLE_DATA/semiconductor capability.jmp");
colList = dt << get column names(continuous,string);
// For this illustration I want to use just the NPNn columns
for(i=nitems(colList), i>=1,i--,
If(substr(colList[i],1,3)!="NPN", remove from(colList,i,1))
);
// build the JSL string
theExpr =
"Dis = Distribution(
Continuous Distribution( Column( :" || colList[1] || " ),
Process Capability( Use Column Property Specs ) )";
For( i = 2, i <= N Items( colList ), i++,
theExpr = theExpr || "," || "Continuous Distribution( Column( :" || colList[i] ||
" ), Process Capability( Use Column Property Specs ) )"
);
theExpr=theExpr||");";
// run the built JSL string
eval(parse(theexpr));
// Standardize the settings
disr = Dis << report;
disr[colList[1]]["Quantiles"]<<CLOSE all="" like="" this=""></CLOSE>Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.모든 것이 응용 프로그램에서 시작된다는 가정이 나에게 많은 고통을 안겨 주었다고 생각합니다.
한 가지 더 질문이 있길 바랍니다. 속성을 설정하려면 모두 여기서 이 단일 변수로 수행한 것처럼 보고서의 분포는 "T05066DD ET_DELTA 비율" 이를 위한 간단한 명령이 있습니까, 아니면 for 루프를 빌드하고 내 목록의 각 변수에 대해 "sendtoreport"를 실행해야 합니까?
ET_DELTA_List = {};<BR />dist = dt << Distribution(Columns(evalList(ET_DELTA_List)));
dist << arrange in rows(5);
dist << Quantiles(0);
dist << Summary Statistics(0);
report(dist)[OutlineBox(2)] << Open all like this(1);
//show properties(dist)
dist << SendToReport(
Dispatch(
{"T05066DD ET_DELTA Ratio"},//this is one of many distributions. i would like to set the following properties to all the distributions in the report
"1",
ScaleBox,
{Min( -5 ), Max( 5 ), Inc( 5000 ), Minor Ticks( 1 ),
Add Ref Line( 2, "Solid", "Black", "", 1 ),
Add Ref Line( -2, "Solid", "Black", "", 1 )}
)
)</CODE></P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-277293" slang="en-US" mode="NONE">Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.</LINGO-SUB><LINGO-BODY id="lingo-body-277293" slang="en-US" mode="NONE"><P>나는 그것을 응용 프로그램에 배치하는 오버 헤드를 피할 것입니다.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-277279" slang="en-US" mode="NONE">Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.</LINGO-SUB><LINGO-BODY id="lingo-body-277279" slang="en-US" mode="NONE"><P>알았어 고마워.</P><P>이것을 하기 위한 당신의 전략은 무엇입니까? 할당 등과 함께 애플리케이션 빌더를 사용하지 않고 스크립트를 사용하여 모든 것을 배치하시겠습니까?</P><P>다시 한번 감사합니다</P><P>웨인.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-277090" slang="en-US" mode="NONE">Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.</LINGO-SUB><LINGO-BODY id="lingo-body-277090" slang="en-US" mode="NONE"><P>짧은 대답은 아니요입니다.최소한 모든 JMP 앱 코드를 포함하는 문자열을 생성해야 합니다.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-277077" slang="en-US" mode="NONE">Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.</LINGO-SUB><LINGO-BODY id="lingo-body-277077" slang="en-US" mode="NONE"><P>로컬 데이터 필터를 사용하여 응용 프로그램에 넣고 싶다면 Eval(Parse) 안에 Allocate 문을 넣을 수 있습니까?</P><P>그래서..</P><PRE><CODE class=" language-jsl">theExpr = "dis = Allocate(
Border1 = Border Box();
DataFilterContext1 = Data Filter Context Box();
List1 = H List Box();
DataFilter1 = Dt << Data Filter( Local );
Report1 = Platform(
Dt,
Distribution(
Continuous Distribution( column( column(Dt, colNames[1])))";
For( i = 2, i <= N Items( colNames ), i++,
theExpr = theExpr || ", Continuous Distribution( column( column(Dt, colNames[" || Char( i ) || "])))"
);
theExpr = theExpr || " )
);
)";
show(theexpr);
Eval( Parse( theExpr ) );
Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.요구 사항을 충족하도록 열 이름 목록을 수정하기만 하면 됩니다.이를 수행하는 방법에는 여러 가지가 있으며 아래에 한 가지 예가 있습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Get the all of the numeric, continuous column names
colNames = dt << get column names( string, continuous );
// Work backwards through the list of columns eliminating those that
// do not meet the pattern one is interested in
For( i = N Items( colNames ), i >= 1, i--,
If( left( colNames[i], 3 ) != "NPN" , colNames = remove( colNames, i, 1 ) );
);
// Build a character string that represents the commands that need to be run
theExpr = "dis = dt << Distribution(
Continuous Distribution( column( column(dt, colNames[1])))";
// Loop across the remaining columns in the colNames list and generate the continuous distribution
// commands
For( i = 2, i <= N Items( colNames ), i++,
theExpr = theExpr || ", Continuous Distribution( column( column(dt, colNames[" || Char( i ) || "])))"
);
// place the closing ")" to complete the command string
theExpr = theExpr || ");";
// Execute the code generated and placed into the character string variable
Eval( Parse( theExpr ) );
Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.@txnelson 나는이 스크립트를 사용했고 효과가있었습니다. 내가 하려는 것은 내 보고서를 자동화하는 것이지만 내 데이터 테이블은 300개 이상의 열로 구성되어 있으며 열 수는 주마다 다릅니다. ex로 시작하는 열 이름이 있습니다. "Fail1", "Fail2",,, "Total1","Total2",,, "Yield1", "Yield2",,, "Loss1", "Loss2",,.예를 들어 "Loss1", "Loss2"와 같은 연속 분포만 표시하도록 필터링하는 방법은 무엇입니까?
Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.@론스완슨 ,
짐 @txnelson 의 스크립트는 훨씬 더 많은 제어와 솔루션을 제공합니다. 알 수 없는 수의 배포를 쉽게 스크립팅하는 방법에 대한 질문을 종종 받았기 때문에 이것은 대체 옵션입니다.이 스크립트에는 분포를 "래핑"하는 명령과 개체에 메시지를 전송(기능 분석 메시지)하여 모든 배포에 메시지를 보내고 공개 아이콘에 메시지를 보내는 방법도 포함되어 있습니다.
Names default to Here(1);
dt = Open("$Sample_Data/Semiconductor Capability.jmp");
cnames = dt << get column names("Continuous", "string");
//Here I will just use 10
cnames = cnames[1::10];
dist = dt << Distribution(Columns(evalList(cnames)));
//if you want to limit the number per row
dist << arrange in rows(3); //change 3 to 5 or whatever you want
dist << Capability Analysis(0); //turn off the distribution
report(dist)[OutlineBox(2)] << Open all like this(1); //reveal all distributions
report(dist)[OutlineBox(2)] << Close all like this(1); //do not reveal

Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.정확히 내가 필요했던 것... 감사합니다 tx!!Re: 분포도에 그룹화된 여러 열을 스크립팅합니다.다음은 원하는 것을 생성하는 데 필요한 코드를 생성하는 한 가지 방법입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
// Get the all of the numeric, continuous column names
colNames = dt << get column names( string, continuous );
// Build a character string that represents the commands that need to be run
theExpr = "dis = dt << Distribution(
Continuous Distribution( column( column(dt, colNames[1])))";
// Loop across the remaining columns in the colNames list and generate the continuous distribution
// commands
For( i = 2, i <= N Items( colNames ), i++,
theExpr = theExpr || ", Continuous Distribution( column( column(dt, colNames[" || Char( i ) || "])))"
);
// place the closing ")" to complete the command string
theExpr = theExpr || ");";
// Execute the code generated and placed into the character string variable
Eval( Parse( theExpr ) );