複数のパラメータとグループのループ内で二変量と変動性のチャートを並べて作成する何をする必要があるかはわかっていますが、それをどのように実装すればよいかわかりません。次のような小さなサンプル テーブルがあります (4 行のみを表示)
dt
グループ パラメータ 値 クラス PhaseLabel 日付
AX 2 pq z xxxxx
AY 6 re z xxxxx
AR 2.6 うーうー yyyyy
BX 4 yt z qqqqq
BR 3 は rrrrrr です
................................................................... …………
そこで、各グループ(個別の HTML ファイル)ごとに jrn-> html を作成したいと思います。各 HTML ファイルには、V リスト ボックスを使用して追加されるプロットがあります。ただし、問題は、並べて表示する必要があることです(1 つの二変量チャートと 1 つの変動チャート)
二変量チャートまたは可変チャートのいずれかを作成できますが、両方を作成することはできません。コードの骨組みを以下に示します。
dt = Current Data Table();
out_path = "*****"
Summarize( groupid = by(:Group));
Summarize(paramgrp = by(:Parameter));
mydf = {};
For (k=1, k<=N items(groupid),k++,
grp_name = groupid[k];
myhtm = New Window( "30d Trend Plots Group Wise", myhtm[k] = V List Box() );
For( i = 1, i <= N Items( paramgroup ), i++,
idname = Char( paramgroup[i] );
outfile = out_path || grp_name || "_" || "trend_plots" || ".html";
df_ooc = dt_month << Bivariate(
Y( :Value),
X( :DATE),
Where( :Parameter == idname),
Where (:Group == groupname),
By(:Group :Parameter),
);
mydf[k] << append( Report( myhtm))
); ///// 2nd for loop end
jrn_df = New Window("Trend Correlation Report", << Journal) ;
mydf[k] << Journal(Freeze All) << show window(0);
jrn_df << Save HTML(outfile);
Close All (Journals, "No Save");
); 1st for loop end
上記のコードは、各グループに 1 つのジャーナルを用意して二変量でプロットしたい場合 (ここに表示)、または Var Chart (クラスとフェーズ ラベルの関数として二変量を Var Chart に置き換えた場合) に完全に正常に機能します。ただし、必要なのは各グループ内 (各パラメーターの最初の for ループ (2 番目のループ内)) に二変量と Var Chart を並べて表示することです。つまり、グループが 4 つある場合はジャーナル (html ファイル) が 4 つ必要であり、グループごとに 5 つのパラメーターがある場合は、各 html ファイルで 2 列に合計 10 個のプロット (1 列目は二変量、2 列目は Var Chart) があることになります。2 番目の for ループ内で H Box を使用して 2 つのプロットを追加しようとしましたが、うまくいきませんでした。
助けていただければ幸いです。他に必要な情報があれば提供できます。
品質およびプロセスエンジニアリングRe: 複数のパラメーターとグループのループ内で、二変量チャートと変動チャートを並べて作成するありがとう、ジム。 はい、実際のデータでテストしました。 それは魅力のように機能しました。 新しいことを学びました!Re: 複数のパラメーターとグループのループ内で、二変量チャートと変動チャートを並べて作成する実際のデータを確認させてください。すぐに戻ってきます。 どうもありがとうジム。 あなたはいつも素晴らしいです!Re: 複数のパラメーターとグループのループ内で、二変量チャートと変動チャートを並べて作成する私はあなたのスクリプトを少し作り直しました。あなたは私が行ったことを研究する必要があります。基本的な問題は、プラットフォームで BY() を使用すると、by のレベルごとに個別のレポートが生成されることです。
書かれたスクリプトは、各グループのジャーナルを生成します。ショー ウィンドウとジャーナルの html への保存をコメント アウトしました。私はこれを行ったので、まず、さまざまなジャーナルが表示されます。コメントを削除するだけで、思いどおりに動作するはずです。
Names Default To Here( 1 );
dt = Current Data Table();
out_path = "*****";
Summarize( groupid = by( :Group ) );
Summarize( paramgroup = by( :Parameter ) );
mydf = {};
For( k = 1, k <= N Items( groupid ), k++,
grp_name = groupid[k];
myhtm = New Window( "30d Trend Plots Group Wise", lb = Lineup Box( N Col( 2 ) ) );
For( i = 1, i <= N Items( paramgroup ), i++,
idname = Char( paramgroup[i] );
outfile = out_path || grp_name || "_" || "trend_plots" || ".html";
df_ooc = dt << Bivariate(invisible,
Y( :Value ),
X( :DATE ),
Where( :group == grp_name ),
By( :Parameter ),
);
vc = Variability Chart(invisible,
Y( :Value ),
X( :Date ),
Std Dev Chart( 0 ),
where( :group==grp_name ),
By( :parameter )
);
// For each value in the By group, there is a separate report
theEnd=.;
try(theEnd=nitems(df_ooc)); if(ismissing(theEnd), theEnd=1);
For( rptGroup = 1, rptGroup <= theEnd, rptGroup++,
IF( theEnd == 1,
lb << append( Report( df_ooc ) );
lb << append( Report( vc ) );
,
lb << append( Report( df_ooc[rptGroup] ) );
lb << append( Report( vc[rptGroup] ) );
);
);
df_ooc << close window;
vc << close window;
); ///// 2nd for loop end
jrn_df = New Window( "Trend Correlation Report", <<JOURNAL></JOURNAL>
スクリプトは、提供されたサンプル データに対してエラーなく動作しました。