PNG 또는 JPEG로 그래프 저장안녕,
사용자가 Excel 파일을 선택하고, 처리하고, 열을 추가하거나 공식화하고, 그래프 빌더를 열고 로컬 데이터 필터로 플롯할 수 있는 스크립트를 만들었습니다.
내 질문은:
1. 스크립트를 사용하여 로컬 데이터 필터 옵션을 선택하여 그래프를 저장하려면 어떻게 해야 합니까? 예를 들어, Trimset(10, 100, 101, 110, 111, 1000, 11111) 및 수식(예 또는 아니오)과 같은 2개의 로컬 데이터 필터가 있고 (수식이 NO인 모든 trimset 값) 및 (공식이 YES인 각 trimset 값) .. 그래서 총 8개의 그래프입니다.
2. 내 그래프에서 "Trimset이 ....이고 공식이 NO인 경우" 그래프 아래에 있는 문장을 포함하고 싶습니다.
3. png 또는 jpeg 파일의 폴더에 그래프 저장
4.JMP 데이터 테이블 및 그래프 빌더 테이블이 저장되지 않고 종료됩니다.
5. 100개 이상의 파일에 대해 이 작업을 수행해야 하므로 클릭 한 번으로 추가 기능을 만드는 방법은 무엇입니까?
나는 모든 토론을 읽었지만 정답을 얻을 수 없습니다. 당신의 도움에 정말 감사드립니다.
감사합니다
Re: 그래프를 PNG 또는 JPEG로 저장예, For 루프를 사용할 수 있습니다.JSL은 컴퓨터 언어에서 기대할 수 있는 모든 기능을 갖춘 매우 완전한 언어입니다.
스크립팅 가이드의 처음 몇 장을 읽으면 언어의 모든 구성 요소와 이를 구현하는 방법에 대한 느낌을 얻을 수 있습니다.
작업하는 컴퓨터 언어에 대한 약간의 정보를 제공할 수 있다면 익숙한 용어로 JSL 예제를 제공하는 데 도움이 될 것입니다.
Re: 그래프를 PNG 또는 JPEG로 저장답장을 보내 주셔서 감사합니다. 매우 유용했습니다. 데이터 필터에서 for 루프를 수행하고 싶은 경우 수행할 수 있습니까? 자동으로 각 조건을 통과하고 그래프를 그릴 수 있습니다. 말씀하신대로 스크립팅 가이드에서 애드인 기능에 대해 알아보도록 하겠습니다.Re: 그래프를 PNG 또는 JPEG로 저장다음은 데이터 필터를 사용하지 않는 다른 접근 방식입니다.
dt = Open( "$sample_data/big class.jmp" );
ages = Data Table( "big class" ) << Summary( Group( :age ), Freq( "None" ), Weight( "None" ) );
sexes = Data Table( "big class" ) << Summary( Group( :sex ), Freq( "None" ), Weight( "None" ) );
deletedirectory("$temp/myPics");
createDirectory("$temp/myPics");
For( iage = 1, iage <= N Rows( ages ), iage++,
thisAge = ages:age[iage];
For( isex = 1, isex <= N Rows( sexes ), isex++,
thisSex = sexes:sex[isex];
eval(evalexpr(biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Automatic Recalc( 1 ),
Fit Line( {Line Color( {213, 72, 87} )} ),
where( age == expr(thisAge) & sex == expr(thisSex) )
)));
parentBox = Report( biv ) << parent;
picture = parentBox << getpicture;
picture << saveImage( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png", "png" );
// optional: Open( "$temp/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png" );
biv<<CLOSEWINDOW></CLOSEWINDOW>
Files In Directory("$temp/myPics") = {"age12sexF.png", "age12sexM.png", "age13sexF.png", "age13sexM.png", "age14sexF.png", "age14sexM.png", "age15sexF.png", "age15sexM.png", "age16sexF.png", "age16sexM.png", "age17sexF.png", "age17sexM.png"};
where clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graph그래프 위의 where 절
이 경우 where 절은 플랫폼 출력 위에 있으므로 <
Re: 그래프를 PNG 또는 JPEG로 저장첫 번째 요점은 JMP 스크립팅 방법을 배우기 위해 토론을 읽어서는 안 된다는 것입니다.JSL 스크립팅 가이드를 읽어야 합니다.
도움말==>도서==>스크립팅 가이드
그런 다음 작업을 수행할 수 없는 경우 토론 커뮤니티가 도움이 되는 훌륭한 리소스입니다.
내가 당신이 묻는 질문에 괴짜를 보자.
1. 로컬 데이터 필터를 사용한 다음 출력을 저장하는 방법.
아래는 매우 불충분한 방식으로 이 작업을 수행하는 방법을 보여주는 조잡한 스크립트입니다.
dt=Open(<PATH to="" your="" data="https://community.jmp.com/" table="">);
gb=Graph Builder(
Size( 527, 453 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 13 ) ), Smoother( X, Y, Legend( 14 ) ) )
);
Thefilter=gb<<LOCAL data="https://community.jmp.com/" filter=""></LOCAL></PATH>
그래프 빌더 및 각 로컬 필터에 대한 코드는 빨간색 삼각형 아래에서 사용할 수 있습니다.그것들을 선택하고 "스크립트 저장"으로 이동하면 보유한 다양한 사례에 필요한 코드를 얻을 수 있습니다.그래프 빌더를 시작하십시오.그런 다음 그래프 빌더용 스크립트를 저장합니다.그런 다음 로컬 필터를 엽니다.첫 번째 case(where 절)로 설정한 다음 스크립트를 저장합니다.다음으로 로컬 필터를 다음 케이스로 변경하고 스크립트를 저장합니다....등.
2. 그래프 아래의 문장은 png로 저장됩니다.
3. 사진 저장 기능에서 경로를 지정하기만 하면 됩니다.사용하려는 이름 지정 방법을 따를 수 있도록 프로그래밍 방식으로 처리할 수 있습니다.
4. 샘플 스크립트는 이를 수행하는 방법을 보여줍니다.
5. Addin을 만드는 방법에 대한 아주 좋은 문서가 Scripting Guide에 있습니다.토론에서 다루기에는 너무 긴 답변입니다.
Re: 그래프를 PNG 또는 JPEG로 저장하는 중이 코드는 모든 데이터 필터에 작은 메뉴를 추가합니다. - 열을 선택하고 확인을 클릭하여 항목을 순환하고 GraphBuilder 플롯을 자동 저장합니다.
(연속된 값이 있는 열은 나열되지 않음)

Names Default to HERE(1);
if(not(namespaceExists("autoAnimate")),New NameSpace("autoAnimate"));
autoAnimate:update = function({},
Try (autoAnimate:DFTopLB = Current Report()["Local Data Filter", List Box( 1 )], stop());
Try(autoAnimate:myDFTPBs = (Current Report()["Local Data Filter", Lineup Ruler Box( 1 ), List Box( 1 )] << Xpath( "//TabPageBox" )),stop());
// collect Data Fitlers with ListBoxes, remove the continuos ones.
autoAnimate:myDFLBs ={};
For Each ( {TPB,i}, autoAnimate:myDFTPBs, tmp=(TPB << xpath( "//ListBoxBox" ));If(NItems(tmp),Insert Into(autoAnimate:myDFLBs,tmp[1]),Remove from(autoAnimate:myDFTPBs,i) ));
// which columns are used?
autoAnimate:DFCols = Transform Each( {TPB}, autoAnimate:myDFTPBs, Trim( Word( 1, TPB << Get Title, "(" ) ) );
// what are the entries? (for the filename)
autoAnimate:myDFLBItems = autoAnimate:myDFLBs << get items;
// how many entries?
autoAnimate:myDFLBNItems = Transform Each( {items}, autoAnimate:myDFLBItems, N Items( items ) );
// variales for the for loops
chars = {"aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii"};
// append a Display Box:
Try(autoAnimate:animatePane << delete);
autoAnimate:DFTopLB << append( autoAnimate:animatePane = V List Box (Spacer Box( size( 0, 20 ) ),Panel Box( "cycle selected + save", V List Box( colSelection = List Box( autoAnimate:DFCols ), H List Box( Button Box("update",autoAnimate:update()),Spacer Box (size(40,0)),Button Box( "start", autoAnimate:animateNsave() ) )) ) ));
);
autoAnimate:animateNsave = Function( {},
// which DFs are selected?
selectedCols = colselection << Get Selected Indices;
// compose the expression
expression = "";
xx=1;
// for loop for every active DF:
For( i = 1, i <= N Items( autoAnimate:myDFTPBs ), i++,
expression = expression || If( Contains( selectedCols, i ),
"For(" || chars[i] || "=1," || chars[i] || "<=" || Char( autoAnimate:myDFLBNItems[i] ) || "," || chars[i] || "++,__LB" || Char( i ) ||
"__ << clear selection << set selected(" || chars[i] || ");",
"if(1,"
)
);
// save current Graph builder Plot -- how about other reports?
expression = expression || "wait();(current report()<< XPath(\!"//OutlineBox[@helpKey='Graph Builder']\!"))<<SAVE picture=""></SAVE>Re: 그래프를 PNG 또는 JPEG로 저장@hogi , 이 스크립트는 정말 대단하네요! 저는 제 분석 결과를 많은 비 JMP 사용자와 공유하고, 로컬 데이터 필터가 있는 모든 그래프에 이 메뉴를 추가하면 매우 유용합니다.
*초보자라면 @hogi 의 스크립트가 독립형이며 데이터 테이블에 추가할 수 있다는 점을 알아두면 도움이 될 수 있습니다(데이터 테이블의 왼쪽 패널 상단에 있는 빨간색 삼각형을 사용하여 "새 스크립트"를 선택). 그런 다음 이 스크립트를 실행하면 로컬 데이터 필터가 이미 적용된 현재 활성 보고서에 작은 메뉴가 추가됩니다.
Re: 그래프를 PNG 또는 JPEG로 저장더 쉬워졌어요 : )
그래프 빌더 툴바 에 기능을 추가했습니다 *)
*) 이제 마켓플레이스를 통해 이용 가능:
https://marketplace.jmp.com/appdetails/Graph%20Builder%20Toolbar

Re: 그래프를 PNG 또는 JPEG로 저장...하지만 여전히 같은 버그가 있는 버전입니다.
속도를 높이려면 wait() 의 인수를 ()에서 ( 0) 으로 변경하세요.
