最新の追加をコピーせずに、単一のウィンドウに複数のグラフボックスを追加する処理中のデータを視覚化するために、いくつかのグラフボックスが追加されたウィンドウを作成しようとしています。 私が持っているセットアップはこれに似ています。
thisWindow = new window("Test Window");
for(x = 1, x <=nitems(thingsToDraw), x++,
thisWindow << append(
graph box(
(setup of X and Y axis, scales and such)
(for loops that create dynamic shapes in the graph box)
);
);
);問題は、新しいグラフボックスを追加するたびに、新しいグラフボックスと一致するように以前のすべてのグラフボックスを変更することです。 グラフボックスを分離して、新しいグラフボックスを追加した後に相互の更新を停止する方法があると確信していますが、わかりません。 サイズとセットアップによってボックスをすべて一意にすると、互いにコピーしているようには見えません。 しかし、それはループの目的と、そもそもループを作成しようとしている理由を無効にします。 これを関数として設定して呼び出してみました。また、その場で評価される式として設定しました。 両方の結果は同じです。
JMP 14を使用しています。
再:最近の追加をコピーせずに、複数のグラフボックスを単一のウィンドウに追加するすべてのグラフィックススクリプトが同じ変数を使用し、各反復でこれらの変数の値を変更することに間違いはありません。その場合、すべてのプロットは新しい値で再描画されます。各グラフィックススクリプトの変数をリテラル値に変換する必要があります。
再:最近の追加をコピーせずに、複数のグラフボックスを単一のウィンドウに追加するこれが簡単な解決策です。 Graph Box()を出力ウィンドウにコピーするのではなく、グラフボックスの画像をコピーします。
thisWindow = new window("Test Window");
for(x = 1, x <=nitems(thingsToDraw), x++,
thisWindow << append(
graph box(
(setup of X and Y axis, scales and such)
(for loops that create dynamic shapes in the graph box)
)<<GET picture=""></GET>再:最近の追加をコピーせずに、複数のグラフボックスを単一のウィンドウに追加するこの例は、私が提案したアプローチを示しています。
Names Default to Here( 1 );
nw = New Window( "Multiple Plots",
vlb = V List Box()
);
a = [ 1, 2, 3, 4 ];
b = [ 2, 4, 6, 8 ];
c = [ 4, 3, 2, 1 ];
d = [ 8, 6, 4, 2 ];
For( plot = 1, plot <= N Row( a ), plot++,
Eval(
Substitute(
Expr(
vlb << Append(
Graph Box(
X Scale( -6, 6),
Y Name( "Amplitude" ),
Y Scale( -10, 10 ),
Y Function( aa + bb * Sine( cc * x / dd ), x )
)
);
),
Expr( aa ), a[plot],
Expr( bb ), b[plot],
Expr( cc ), c[plot],
Expr( dd ), d[plot]
)
);
);再:最近の追加をコピーせずに、複数のグラフボックスを単一のウィンドウに追加するハ!それが私が必要としたものです。 私はそれが簡単だと思ったので、どうにかしてそれをコピーする方法を見つけようとしていましたが、どのように見つけることができませんでした。 画像をコピーしてから画像ボックスに追加するのは完璧に機能します!そして、画像用の軸ラベルなどを使用せずに、グラフボックス自体を取得することができます。これにより、私がやろうとしていることが改善されます。
ありがとう!