グラフを PNG または JPEG として保存やあ、
ユーザーが Excel ファイルを選択し、それを処理し、列を追加または定式化し、グラフ ビルダーを開いてローカル データ フィルターでプロットできるスクリプトを作成しました。
私の質問は次のとおりです。
1. スクリプトを使用してローカル データ フィルター オプションを選択してグラフを保存するにはどうすればよいですか? たとえば、Trimset(10, 100, 101, 110, 111, 1000, 11111) と式 (はいまたはいいえ) という 2 つのローカル データ フィルターがあり、(すべてのトリムセット値と式 NO) のようなグラフをプロットする必要があります。 (式 YES を使用した各トリムセット値) .. つまり、合計 8 つのグラフになります。
2. 私のグラフでは、グラフの下に「トリムセットは .... 式は NO です」というステートメントを含めたいと考えています。
3. グラフを png または jpeg ファイルでフォルダーに保存します
4.JMP データ テーブルとグラフ ビルダー テーブルが保存されずに終了します。
5. 100 個以上のファイルに対してこれを行う必要があるため、シングルクリック操作を行うアドイン機能を作成するにはどうすればよいですか?
すべてのディスカッションを読みましたが、正しい答えを得ることができません。 本当に感謝しています。
ありがとう
Re: グラフを PNG または JPEG として保存するはい、For ループが利用可能です。JSL は、コンピューター言語に期待されるすべての機能を備えた、非常に完全な言語です。
スクリプト ガイドの最初の数章を読んで、言語のすべてのコンポーネントとその実装方法を理解することをお勧めします。
あなたがどのようなコンピュータ言語を使用しているかについて少し情報をいただければ、あなたがよく知っている用語で JSL の例を提供するのに役立ちます。
Re: グラフを PNG または JPEG として保存するtxnelsonさん、返信ありがとうございます。 とても役に立ちました。 データフィルターで 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 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>
グラフ ビルダーと各ローカル フィルターのコードは、赤い三角形の下にあります。それらを選択して「スクリプトの保存」に進むと、さまざまなケースに必要なコードが得られます。グラフビルダーを起動するだけです。次に、グラフ ビルダーのスクリプトを保存します。次に、ローカル フィルターを開きます。最初のケース (where 句) に設定し、スクリプトを保存します。次に、ローカルフィルターを次のケースに変更し、そのスクリプトを保存します...など。
2. グラフの下のステートメントが png に保存されます
3. 画像の保存機能でパスを指定するだけです。これはプログラムで処理できるため、使用したい任意の命名方法に従うことができます。
4. サンプル スクリプトはこれを行う方法を示しています
5. スクリプト ガイドには、アドインの作成方法に関する非常に優れたドキュメントがあります。ディスカッションで扱うには長すぎる回答です
Re: グラフを PNG または JPEG として保存するこのコードは、任意のデータ フィルターに小さなメニューを追加します。 - 列を選択し、「OK」をクリックしてエントリを循環し、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%20ツールバー

Re: グラフを PNG または JPEG として保存する...しかし、まだ同じバグのあるバージョンです。
速度を上げたい場合は、 wait()の引数を () から ( 0)に変更してください。
