J'ai une idée de ce qui doit être fait mais je ne sais pas comment le mettre en œuvre. J'ai un petit exemple de tableau (disons) comme celui-ci (montrant juste 4 lignes)
dt
Groupe Paramètre Valeur Classe PhaseLabel Date
A X 2 pq z xxxxx
A Y 6 re z xxxxx
A R 2.6 uy u yyyyy
B X 4 yt z qqqqq
B R 3 er s rrrrrrr
.................................................. ...............
Je veux donc créer jrn-> html pour chacun de mes groupes (fichiers html distincts). Dans chaque fichier html, il y aura des tracés qui seront ajoutés à l'aide d'une boîte de liste V. Cependant, le problème est que je dois avoir un graphique côte à côte (un graphique bivarié et un graphique de variabilité)
Je suis capable de produire un graphique bivarié ou variable, mais je ne peux pas faire les deux. J'ai mis le squelette du code ci-dessous:
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
Maintenant, le code ci-dessus fonctionne parfaitement lorsque je veux avoir 1 journal pour chaque groupe qui parcourt un bivarié (montré ici) ou si je veux un diagramme de Var (si je remplace simplement bivarié par var Chart en fonction de l'étiquette de classe et de phase ). Cependant, ce que je veux, c'est à l'intérieur de chaque groupe (d'abord pour la boucle pour chaque paramètre (à l'intérieur de la 2ème boucle) le diagramme bivarié et var côte à côte. Cela signifie donc que si j'ai 4 groupes, je devrais avoir 4 journaux (fichier html) et si pour chaque groupe disons que j'ai 5 paramètres, alors sur chaque fichier html, j'aurai un total de 10 parcelles dans 2 colonnes (1ère colonne dit Bivarié et 2ème La colonne dit Var Chart). J'essayais d'utiliser H Box dans la 2ème boucle for et j'essayais d'ajouter les deux tracés, mais cela ne fonctionne pas.
J'apprécierai vraiment l'aide. Si d'autres informations sont nécessaires, je peux les fournir.
J'ai un peu retravaillé votre script.Vous aurez besoin de passer par là une étude de ce que j'ai fait.Le problème de base est que lorsque vous utilisez un BY () sur les plates-formes, il génère un rapport distinct pour chaque niveau de by.
Le script tel qu'il est rédigé générera les journaux pour chaque groupe.J'ai commenté la fenêtre d'exposition et l'enregistrement du journal au format HTML.Je l'ai fait, donc pour commencer, vous verrez les différentes revues.Il vous suffit de supprimer les commentaires et cela devrait fonctionner comme vous le souhaitez.
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>
Le script a fonctionné sans erreur sur vos exemples de données fournis.