このようなdtからグラフを作成すると:
gb = Data_Table << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Split ),
X( :Wafer, Position( 1 ) ),
Y( As Column( analysisTests[i] ) ),
Color( :Split )
),
Elements(
Points( X( 1 ), X( 2 ), Y, Legend( 21 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 22 ) )
)
);
それは素晴らしい働きをします。ただし、すべてをループに入れて、それぞれ独自のウィンドウに一連のグラフ(列ラベルごとに1つ)を生成することを期待すると、代わりに最初のグラフが更新されます。
for(i = 1, i <= N Items(analysisTests), i++,
gb = Data_Table << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Split ),
X( :Wafer, Position( 1 ) ),
Y( As Column( analysisTests[i] ) ),
Color( :Split )
),
Elements(
Points( X( 1 ), X( 2 ), Y, Legend( 21 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 22 ) )
)
);
);それぞれが独自のウィンドウに一連のグラフを表示するにはどうすればよいですか?データテーブルに基づいてグラフを要求するため、それぞれが独自のグラフを持つ複数のデータテーブルが必要になるようですが、もっと簡単な方法があるはずです。ループごとに個別のグラフを取得することを期待してgb [i]を試しましたが、エラーが発生します。 -「割り当て」のアクセスまたは評価で添え字化できない値
それがなぜなのかわからない-デフォルトのアクションは、個別のウィンドウが作成されることだと思います。このスクリプトのように:
dt = open("$SAMPLE_DATA/Big Class.jmp");
cols = dt << get column names;
for (i=1,i<=nitems(cols),i++,
dt << Graph Builder(
Size( 353, 317 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( eval(cols[i]) ) )
);
)
「ウィンドウ」の意味を誤解した場合、つまり、1つのウィンドウに多数のグラフが必要であると誤解した場合は、グラフをコンテナに入れて(すぐにレンダリングされないようにする)、プレに追加する必要があります。 -既存の表示ボックス(この例ではhlb)
dt = open("$SAMPLE_DATA/Big Class.jmp");
cols = dt << get column names;
NewWindow("Demo",
hlb = HListBox()
);
for (i=1,i<=nitems(cols),i++,
content = VListBox(
dt << Graph Builder(
Size( 353, 317 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( eval(cols[i]) ) )
)
);
hlb << append(content)
);ありがとうデビッド、
これは実際に私がやっていたこととまったく同じですが、それは最後のものだけを示していました。表示しなかった「余分な」スクリプトの一部にバグを見つけてしまい、それが修正されると正しく機能し始めました。だからあなたの答えは、私がそれを正しくやっているということを私に示し、本当の問題を見つけるための正しい方向に私を向けました。ありがとう