Comment changer dynamiquement la colonne de couleur dans le générateur de graphiquesSalut,
lors de la création d'un objet Graph Builder, on peut définir des variables comme suit : Variables(X(:x), Y(:y), Color(:color))
Ce que je voudrais faire, c'est changer dynamiquement la colonne de couleur en sélectionnant des colonnes spécifiques dans une liste. Comment cela peut il etre accompli?
Merci d'avance.
Exploration et visualisation des donnéesRe : Comment changer dynamiquement la colonne de couleur dans le générateur de graphiquesVous pouvez utiliser le sélecteur de colonnes pour cela




Re : Comment changer dynamiquement la colonne de couleur dans le générateur de graphiquesSalut Jarmo, c'est vrai, mais je dois évidemment être plus précis : le sélecteur de colonne devrait affecter uniquement la colonne de couleur, pas disons la colonne x ou y.
Re : Comment changer dynamiquement la colonne de couleur dans le générateur de graphiques« Le seul « problème » avec le sélecteur de colonnes est que vous ne pouvez pas avoir la même colonne dans plusieurs rôles en même temps. » : c'est EXACTEMENT ce dont j'ai besoin, malheureusement.
Re : Comment changer dynamiquement la colonne de couleur dans le générateur de graphiquesJ'ai créé un élément de liste de souhaits pour cela. Ajoutez un nouveau commutateur appelé Role Switcher . Actuellement, je pense que cela nécessitera une solution de script, si elle se limite simplement au générateur de graphiques ET au rôle de couleur, elle est un peu plus facile à créer (je créerai très probablement un complément pour cela quand j'aurai le temps).
Re : Comment changer dynamiquement la colonne de couleur dans le générateur de graphiquesVoici une version très rapide du script
Names Default To Here(1);
If(Is Empty(Current Report()),
Throw("No open reports found");
);
cur_report = Current Report() << XPath("//OutlineBox[@helpKey='Graph Builder']");
If(N Items(cur_report) < 1,
Throw("No graph builder open");
,
cur_report = cur_report[1] << Get Scriptable Object;
dt = cur_report << Get Data Table;
);
// Find current Color role
find_role_column = Function({gb, role = "Color"}, {Default Local},
vars = gb << Get Variables();
col = "";
role_idx = 0;
For Each({var, idx}, vars,
role = var["Role"];
If(role == "Color",
col = var[1] << get name;
role_idx = idx;
break();
);
);
return(Eval List({col, role_idx}));
);
replace_role_column = function({gb, new_col, role = "Color"}, {Default Local},
{colname, role_idx} = find_role_column(gb);
gb << inval;
If(role_idx > 0,
gb << Remove Variable(role_idx);
);
Eval(EvalExpr(
gb << Add Variable({Expr(NameExpr(AsColumn(new_col))), Role(Expr(role))});
));
wait(0);
gb << update window;
return(1);
);
nw = new window("demo",
clb = Col List Box(Datatable(dt), width(250), maxSelected(1),
<< Set Function(function({this},
replace_role_column(cur_report, this << get selected, "Color");
));
)
);
clb << Set Items(dt << Get Column Names("String"));
En créer une meilleure prendra un certain temps et j'aurai peut-être suffisamment de temps pendant le week-end pour en créer une (c'est assez similaire à mon Column Quick Swapper - modifiez facilement plusieurs colonnes des axes Y et X dans Graph Builder )
Re : Comment changer dynamiquement la colonne de couleur dans le générateur de graphiquesIntéressant. Je pense avoir récupéré les éléments de votre script, mais j'aurai besoin de temps pour y travailler la semaine prochaine.