こんにちは、
複数のグラフを作成する関数について質問があります。特定の設定でグラフビルダーを呼び出して複数のグラフを作成する関数を作成しています。グラフは似ていますが、使用する列数が異なり、書式設定も少し異なります。この関数への入力は、データが格納されたデータテーブルのみです。
この関数はグラフを作成し、各グラフを変数として保存し、最後にすべての変数をリストに追加します。その後、リストから各変数(グラフ)を呼び出し、それぞれ異なるウィンドウに表示したいのですが、うまくいかず、インデックス付きでリストを呼び出すと空白が表示されます。
グラフをレポートにしようとしましたが、インタラクティブではなくなりました。
グラフを配置したい場所で関数を呼び出すと、一度に 1 つずつではなく、3 つのグラフすべてが一度に配置されます。
これを解決する方法についてご助力いただければ幸いです。
グラフを表示したい場所で関数を呼び出すことができるはずです。
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
create_plot = function({dt, colname}, {Default Local},
gb = dt << Graph Builder(
Variables(X(:age), Y(Eval(colname)), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
return(gb);
);
plots = {};
nw = new window("",
V List Box(
Insert Into(plots, create_plot(dt, "height")),
Insert Into(plots, create_plot(dt, "weight"))
)
);
参照コレクションのリストが必要ない場合は、そのままドロップしてください。
nw = new window("",
V List Box(
gb_height = create_plot(dt, "height"),
gb_weight = create_plot(dt, "weight")
)
);
あるいは単に
nw = new window("",
V List Box(
create_plot(dt, "height"),
create_plot(dt, "weight")
)
);
複数のウィンドウでも同様の考え方になります
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
create_plot = function({dt, colname}, {Default Local},
gb = dt << Graph Builder(
Variables(X(:age), Y(Eval(colname)), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
return(gb);
);
nw = new window("",
create_plot(dt, "height")
);
nw = new window("",
create_plot(dt, "weight")
);
あるいは、新しいウィンドウが必要ない場合もあります
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
create_plot = function({dt, colname}, {Default Local},
gb = dt << Graph Builder(
Variables(X(:age), Y(Eval(colname)), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
return(gb);
);
gb1 = create_plot(dt, "height");
gb2 = create_plot(dt, "weight");
ありがとう、Jarmo。
結局、私も似たようなことをしました。Match句を作成し、3種類のグラフのうちどれを作成するかを選択し、関数を必要な回数だけ呼び出して、それぞれのグラフを作成しました。これは、あなたが最終的に行ったことと同等だと思います。3つのグラフはすべて、あなたの例のように列名を置き換えるだけでなく、書式設定に若干の違いがあるため、同じ関数で作成したいと考えていました。また、それぞれのグラフの種類ごとに3つの異なる関数を作成したくもありませんでした。
「グラフをどのように作成するか」に加えて、「グラフをどのように整理するか」も考慮する必要があります。
単一のウィンドウを使用して、グラフをタブとして保存するのでしょうか?