グラフ ビルダー、円グラフ: 特定の要素を持つグループをフィルターするときに、グループのすべての要素を保持するにはどうすればよいですか?こんにちは、
グラフィック ビルダーに関するヘルプを探しています。JMP 16.2.0 を使用しています。
例として、2 つの列 (レシピ、材料) を持つテーブルを使用します。レシピは複数の材料で構成され、1 つの材料は複数のレシピで使用できます。テーブルは添付ファイルで提供されます。
グラフ ビルダーで、レシピをグループ X に、材料を X に配置し、円グラフを選択して、どのレシピにどの材料が使用されているかを確認します。

私がやりたいのは、材料を選択すると、その材料を使用するすべてのレシピの円グラフが保持されることです。円グラフには、すべての材料が表示されるはずです。
たとえば、ミルクを使用するすべてのレシピを表示したいとします。レシピにローカル データ フィルターを追加すると、円グラフにはベシャメル ソースとパンケーキのすべての材料が表示されません。

出力として欲しいのは次のようなものです:

JSL を書かずに、それを実行する簡単な方法はありますか? テーブルを変更するか、グラフ ビルダーを操作できます。
ありがとう !
データの探索と視覚化Re: グラフ ビルダー、円グラフ: 特定の要素を持つグループをフィルターするときに、グループのすべての要素を保持するにはどうすればよいですか?JMP16でこれができるかどうかはわかりませんが(私はJMP18を使用しています)、材料の複数の回答列を作成できます。


テーブルスクリプトが添付されたテーブル
Re: グラフ ビルダー、円グラフ: 特定の要素を持つグループをフィルターするときに、グループのすべての要素を保持するにはどうすればよいですか?ご返信ありがとうございます。これは本当に素晴らしい解決策です。
残念ながら、JMP 16 では動作しません。

もっと新しいバージョンにアップデートする必要があると思います!
Re: グラフ ビルダー、円グラフ: 特定の要素を持つグループをフィルターするときに、グループのすべての要素を保持するにはどうすればよいですか?スクリプトもオプションですが、避けたいとのことなので、JMP16で機能する可能性のあるオプションを紹介します(選択行の状態を利用するため、少し扱いにくい場合があります)。ローカルデータフィルターの代わりにデータフィルターを使用できる場合は、次のようにすることができます。
次のような数式列を作成します

Col Sum(Selected(), :Recipe) >= 1
成分を含むデータフィルター(ローカルデータフィルターではない)を作成する

新しく作成した数式列を使用してローカルデータフィルターを使用してグラフを作成し、値を1に設定します。

その後、ローカルデータフィルターを折りたたんで、ウィンドウを並べて整理することができます。

ここで少し厄介なのは、選択が行われ、テーブルまたはデータ フィルターの外部から何かが選択されると、混乱が生じることです。
Re: グラフ ビルダー、円グラフ: 特定の要素を持つグループをフィルターするときに、グループのすべての要素を保持するにはどうすればよいですか?データテーブルを新しい行と新しい列で変更すると、JMP 16で動作させることができます。レシピの各材料の組み合わせごとに新しい行を作成する必要があります。牛乳、小麦粉、バターを含むベシャメルの場合

拡大する必要がある


拡張データテーブルを生成するスクリプトは次のとおりです。
names default to here(1);
dt=current data table();
// Start the new table
dtOut = New Table( "Expanded",
New Column( "Recipe", Character ),
New Column( "Ingredient", Character ),
New Column( "Ingredients", Character )
);
// Find the different Recipies
summarize( dt, Recipies = By(:Recipe));
// Loop through the recipies
For Each( {rec}, Recipies,
// Find the ingredients for the current recipe
dt << select where(:Recipe == rec );
dtTemp = dt << subset( selected columns(0), selected rows(1));
summarize( dtTemp, ingre=by(:ingredient));
// Loop across each ingredient and add the rows to the data table
For Each( {item}, ingre,
dtTemp << New Column("Ingredients", character, set each value(item));
dtOut << concatenate( dtTemp, Append to First Table(1) );
dtTemp << delete columns(:Ingredients);
);
close( dtTemp, nosave );
);Re: グラフ ビルダー、円グラフ: 特定の要素を持つグループをフィルターするときに、グループのすべての要素を保持するにはどうすればよいですか?GraphBuilder + Multiple Response: 非常に (!) 便利です!
JMP17で利用可能になりました: JMP 17とJMP Pro 17の新機能 - 主なハイライト オリジナル英語版
アップグレードは無料です。2 つの手順を実行するだけで、JMP18 の優れた機能をすべて利用できるようになります。
Re: グラフ ビルダー、円グラフ: 特定の要素を持つグループをフィルターするときに、グループのすべての要素を保持するにはどうすればよいですか?創造的な解決策を提供してくれた@jthi @txnelsonに感謝します。スクリプトを実際のデータに合わせて調整し、必要に応じて実行します。
@hogi JMP のアップデートを推進します!
素晴らしい一週間をお過ごしください!