分布プロットをテーブルに動的に追加する約 180 列のデータを含むテーブルがあります。
JSLのforループを介して(各列に固有のローカルデータフィルターを使用して)各列の分布プロットを(テーブルに)動的に追加したいと考えています。
これは可能でしょうか? 私の試みで何が起こるかというと、添付されたすべてのプロットが for ループの最後の値になります。 おそらく何か単純なものが欠けているのでしょう。
ありがとう!
自動化とスクリプト作成Re: 分布プロットをテーブルに動的に追加するそれが可能だ。スクリプトのサニタイズされたバージョンを添付していただければ、サポートがより簡単かつ迅速になります。
Re: 分布プロットをテーブルに動的に追加する正確に何を探しているのかわかりません。以下は、ローカル データ フィルターを使用してすべてのディストリビューションを作成する簡単なスクリプトです。
Names Default To Here( 1 );
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
ColNames = dt << get column names( string, numeric );
nw = New Window( "Distributions",
H List Box(
For Each( {Col}, ColNames,
Eval(
Eval Expr(
Distribution(
Continuous Distribution( Column( Eval( col ) ) ),
Local Data Filter( Add Filter( columns( Eval( col )) ) )
)
)
)
)
)
);

Re: 分布プロットをテーブルに動的に追加する短縮版は次のとおりです。
Clear Log();
Clear Globals();
dt = current data table ();
myTests = {:Name ("Cont_VDD"), :Name ("Cont_OUTP")};
for (i=1, i<= 2, i++,
dt << Add Properties to Table(
{New Script(
"Distribution",
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( myTests[i] ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Process Capability( Use Column Property Specs )
)
)
});
);
Re: 分布プロットをテーブルに動的に追加するスクリプトは、テーブル スクリプトが機能するために必要な JSL を完全には具体化していません。テーブル スクリプトを適切に実行できるようにするには、myTests の参照を正確な列名に解析する必要があります。以下の JSL は、データ テーブルに保存する前にコードを強制的に展開します。ローカルフィルターも追加し、スクリプト名を列名にするようにコードも変更しました。
Names Default To Here( 1 );
Clear Log();
Clear Globals();
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
myTests = dt << get column names( string, numeric );
For( i = 1, i <= N Items( myTests ), i++,
Eval(
Eval Expr(
dt << Add Properties to Table(
{New Script(
expr(myTests[i]),
Distribution(
Stack( 1 ),
Continuous Distribution( Column( Expr( myTests[i] ) ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Process Capability( Use Column Property Specs ),
Local Data Filter( Add Filter( columns( Expr( myTests[i] )) ) )
)
)}
)
)
)
);
Re: 分布プロットをテーブルに動的に追加するDistribution の起動スクリプトでグローバル変数を使用する場合は、変数に格納されている現在の値が使用されます。 起動スクリプトのリテラル値に変換する必要があります。
Re: 分布プロットをテーブルに動的に追加するどうもありがとう!!!私は独学で JSL を学びました...そして途中でいくつかの障害にぶつかりました...Eval の使用法が今では明確になりました...もう一度ありがとう!
--マット
Re: 分布プロットをテーブルに動的に追加するさらに、単純なヒストグラムだけを探している場合、JMP 15 以降では、データ テーブルでヒストグラム アイコンを選択するだけで、各列の上にヒストグラムを表示できます。
