Cómo cambiar dinámicamente la columna de color en el generador de gráficosHola,
al crear un objeto Graph Builder, se pueden definir variables de la siguiente manera: Variables(X(:x), Y(:y), Color(:color))
Lo que me gustaría hacer es cambiar la columna de color dinámicamente seleccionando columnas específicas de una lista. ¿Cómo se puede lograr esto?
Gracias de antemano.
Exploración y visualización de datosRe: Cómo cambiar dinámicamente la columna de color en el generador de gráficosPuedes usar el conmutador de columnas para esto.




Re: Cómo cambiar dinámicamente la columna de color en el generador de gráficosHola Jarmo, esto es cierto, pero obviamente tengo que ser más preciso: el conmutador de columnas tendría que afectar sólo a la columna de color, no digamos a la columna x o y.
Re: Cómo cambiar dinámicamente la columna de color en el generador de gráficos'El único "problema" con el conmutador de columnas es que no se puede tener la misma columna en varios roles al mismo tiempo': desafortunadamente, esto es EXACTAMENTE lo que necesito.
Re: Cómo cambiar dinámicamente la columna de color en el generador de gráficosCreé un elemento de la lista de deseos para ese Agregar nuevo conmutador llamado Role Switcher . Actualmente creo que esto requerirá una solución de secuencias de comandos, si solo se limita al generador de gráficos Y a la función de color, es un poco más fácil de crear (lo más probable es que cree un complemento para esto cuando tenga tiempo).
Re: Cómo cambiar dinámicamente la columna de color en el generador de gráficosAquí hay una versión muy rápida del 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"));
Crear uno mejor llevará algo de tiempo y es posible que tenga tiempo suficiente durante el fin de semana para crear uno (es bastante similar a mi Intercambiador rápido de columnas: cambie fácilmente varias columnas de los ejes Y y X en Graph Builder )
Re: Cómo cambiar dinámicamente la columna de color en el generador de gráficosInteresante. Creo que entendí los fragmentos de tu guión, pero necesitaré algo de tiempo para trabajar en esto la próxima semana.