やあ、
列が何であるかわからないデータテーブルから積み上げ棒グラフをスクリプト化したいと思います。
1.必要な列で作成されたデータテーブルがあります
2.データフィルターを追加して必要な行を選択し、残りを除外します
2.最初の列と最初の列の後に、各列で使用可能な行から積み上げ棒グラフを作成する必要があります。
3.最初の列を除いて、列名と正確な数がわからない。
1セットのデータに対して積み上げ棒グラフを作成しました。次のようになります。
グラフビルダーからスクリプトをコピーしました。これがその外観です。
Graph Builder(
Size( 500, 590 ),
Variables(
X( :BIBID ),
Y( :Name( "Row %(Fail, Column2)" ) ),
Y( :Name( "Row %(Fail, Column3)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column4)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column5)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column6)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column7)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column8)" ), Position( 1 ) )
),
Elements(
Bar(
X,
Y( 1 ),
Y( 2 ),
Y( 3 ),
Y( 4 ),
Y( 5 ),
Y( 6 ),
Y( 7 ),
Legend( 4 ),
Bar Style( "Stacked" )
)
)
);
私の質問は、JSLを介してグラフビルダーで変数(Y)と要素(Y)をパラメーター化する方法です。
Pass Fail BinPass Fail Binパスフェイルビン
こんにちはgzmorgan、
ソリューションを提供していただきありがとうございます。
次の行を追加することで、グラフをpptに保存できます。
ありがとう、
「」コメントと空の行を含む52行のJSLが、これほど多くのことを実行できることにいつも驚かされます。 「」 - 絶対!
@ mt7575 、スクリプトを書くとき、答える必要のある多くの質問があります。たとえば、これはインタラクティブな表示になるのでしょうか、それともグラフを作成してpngとして保存するのでしょうか。ジャーナルに? PPTXに? 使用しているJMPのバージョン、使用しているOS(MACとWindowsの構文にはいくつかの違いがあります)、またはJSLスキルのレベルについては言及していません。 JSLやその他のスクリプト言語について教えたり書いたりする場合、効果を上げるための最善の方法は「ツールを知る」ことです。これは、他の誰かが書いたスクリプトを書いたり、維持したりするための基本的なスキルが必要だという別の言い方です。
添付されているのは、Xのどの項目と、どのYをプロットするかを選択するためのインタラクティブな表示用に作成されたスクリプトです。以下のJSL「ツール」を使用します。 スクリプトを作成していないことがリストされている各項目について、[ヘルプ]> [スクリプトインデックス]に時間を費やして、スクリプト、オプション、およびメッセージを確認する必要があります。
- ディスプレイボックス:FilterColSelector、ButtonBox、HListBox、VListBox、PanelBox、GraphBuilderBox
- オブジェクト:GraphBuilder、DataFilter、Expressions、Data Table
動的な「OnChange」関数の場合は、JSLスキルがわからない場合は、代わりに式が付加されたGoボタンが使用されます。
ディスプレイボックスのGraphBuilderBoxのドキュメントが不足しているため、このスクリプトを書くのに少し時間を費やしました。 JSLコンパニオン、第2版 ;このスクリプトは、本の補遺の例として使用されます。 ですから、利用できる可能性のあるすべてのツールを認識するのが難しい場合があることを私は知っています。 スクリプトとサンプルデータテーブルが使用されます。 スクリプトは、データテーブルの最初の列が常にXになるという事実にのみ依存します。 表示から、「使用しない」オプションとしてデータフィルターを使用するには、「反転」をチェックします。
スクリプトは、WindowsOSのJMPPRO 12、13、および14でテストされました。コメントと空の行を含む52行のJSLが、これほど多くのことを実行できることにいつも驚かされます。

こんにちはian_jmp、
返信いただきありがとうございます。 グラフビルダーが積み上げ棒グラフをプロットするために使用するサンプルデータを添付しています。

Table.jpgは、サンプルデータを示すスクリーンショットです。
JMP:
1.1。 データフィルターを適用して、列名に失敗が含まれ、値がゼロ以外の行を選択しました
2.2。 グラフビルダーを使用して選択した行をプロットしました。X値はBIB_IDで、Y値はすべて失敗した列です。
JSL:
上記の手順をパラメータ化したいと思います
1.1。 毎回BIB_ID列のみが存在します
2.次の列名またはいいえ。列の数は毎回変化します
ゴール:
1.1。 前の投稿に添付されている積み上げ棒グラフを取得するには、Table.jpgに記載されている種類のデータのJSLを作成する必要があります。
動作するコードを探している場合は、すべてのケースが少し異なる可能性があるためです。いくつかのサンプルデータは、人々があなたを正しい軌道に乗せるのに役立ちます。
一般的なアプローチを理解するには、タスクを2つのステップに分割する必要があると思います。つまり、列を取得してからGraphBuilderを使用します。 最初に、おそらく「ColListBox()」が必要です(データフィルターは列ではなく行で機能します)。 「ヘルプ>スクリプトインデックス」でこれを探してください。 2番目のステップでは、Graph Builderは多くのオプションを備えた非常に機能的であるため、必要なJSLには少し注意が必要です。