グラフビルダーでグループ化(パネル)のカウントを取得して視覚化が適切かどうかを確認するだから私はデータテーブルを取り、グラフの提案をすることができるJSLを少し書きました。一意の値の数、列のデータ型、列名をチェックして、どのグラフが最も適切かを判断します。
私が抱えている問題の1つは、ページ、グループX、グループY、または折り返しを使用していて、結果パネルにデータポイントが多くないことです。以下はBig Classを使ったばかげた例です。 グラフの各パネルには1つの点しか含まれていないので、明らかにnameは不適切なグループ化変数です。

私のコードが潜在的なビジュアライゼーションを選択したら、レイアウトにデータがまばら/空のパネルがほとんど含まれないことを確認するための最良の方法は何でしょうか。
- 私は自分の変数がどのように関連しているか知っているので、tabulateを使ってテーブルを作成し、隠しデータテーブルを作成し、マトリックスを作成し、そしてマトリックスの疎密性をチェックすることができます。これは長い間勝ったようです。
- テーブルを作成しないJSL summize()関数(JMP 12)を使用しても不可能だと思うカウントが必要です。
- カウント行列を構築するための優雅な方法はありますか?
- 通常、コードは最も多数のリスト(X、Y、または凡例)の各項目に対して3つのグラフを提案するので、可能であればテーブルを作成しないようにしたいと思います。
ありがとう、
スティーブン
再:ビジュアライゼーションが賢明であることを確認するためにグラフビルダーのグループ化(パネル)の数を取得するJMPアドインがあります。すべての文字列を数値に変換します 。@M_Andersonに感謝しますそれを指摘 。
これはsummize()を使うのをとても簡単にします。
再:ビジュアライゼーションが賢明であることを確認するためにグラフビルダーのグループ化(パネル)の数を取得するすべてのグループ化変数が数値の場合は、集計によって迅速に集計作業を行うことができるため、高速になります。 しかし、それはデータやユーザーにとって非常に制限的です。 summary関数の呼び出しを "Summary"プラットフォームに変換し、数値列と文字列の両方を処理できるテーブルを作成できます。 あなたはそれがうまくいくかどうかを確認するためにいくつかのタイミングテストを行うことができます。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\car physical data.jmp" );
dtsumm=dt << Summary(private,
Group( :type),
N( :type ),
Freq( "None" ),
Weight( "None" )
);
show(dtsumm:type<<GET values=""></GET>
再:ビジュアライゼーションが賢明であることを確認するためにグラフビルダーのグループ化(パネル)の数を取得するその例をありがとう。グループYとグループX(潜在的にはXも)がすべて文字としてある場合、3つのforループをネストする必要がありますか?データテーブルが未知のサイズであるため、これは急速にJMPをループで結びつける方法になります(潜在的にユーザーは30のグラフすべてを要求することができ、パネルマトリックスの計算が必要です - 最初の30の提案だけを表示するようにプログラムをキャップしました) 。
おそらくこれは車の物理データを使ったもっと良い例でしょう。私が望んでいたのは3 x 5の行列か15項目のリストでした。

summize()を最大限に活用するために、文字列をNumericとして再コーディングするのが最善ですか?ループよりも速くてきれいになるでしょうか。
再:ビジュアライゼーションが賢明であることを確認するためにグラフビルダーのグループ化(パネル)の数を取得する要約することは行く方法です。 文字列のカウントはできませんが、グループ化値を取得してそこからカウントを取得できます。 下記のスクリプトを参照してください
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
// Numeric Column
dt = Open( "$SAMPLE_DATA\big class.jmp" );
Summarize( dt, bygroup = by( :age ), counts = Count( :age ) );
Show( "Numeric Column", bygroup, counts );
// Character Column
Summarize( dt, bygroup = by( :sex ) );
counts = {};
For( i = 1, i <= N Items( bygroup ), i++,
Insert Into( counts, N Rows( dt << get rows where( :sex == bygroup[i] ) ) )
);
Show( "Character Column", bygroup, counts );