Changing attributes interactively to multiple visuals


One of our customers asked us to help them to put a dashboard together. They have a case where they need to control several attributes based on specific metrics. For example, let’s say we need to control product groups and categories based on four metrics (quantity, revenue, commission, transactions).

We’ ve created four charts grouped by product groups, one for each metrics. And four more grouped by product category, also one for each metric. We’ve ended up with 8 visualizations and the dashboard looks big.

Is there a way where we can modify the group by for the four initial charts? I know that we can go one by one and change the attribute. But I was talking about something like a function or so. That way we could circle between different attributes re-using the same charts.

I hope you guys understand my puzzle lol.


What about configuring a drill hierarchy in the Interaction Manager? This way you could easily change the group by of all visualizations at the same time when a filter is applied.

In your case you just need to use your product group as your base group, then product category as the next field to go to when you filter by product group.

const group_path = { group1: ["product_group", "product_categ"]};

const drill = {
    'vis-1': group_path,
    'vis-2': group_path,
    'vis-3': group_path,
    'vis-4': group_path

You can even add more fields.

Changing between different set of filters

Well, depending on what you need you can use two solutions:

If you want to change the attributes during an intereaction (applying a filter), then the you need to configure a drill hierarchy as @sandip mentioned.

The other way is to use the Field Selector which is a component introduced in 1.16. This component will allow to quickly change attributes or metrics for a chart or group of charts. You can take a look at the documentation for examples


Yes, the Field Selector is what we were looking for. I’ve used the drill hierarchy before but I didn’t realized that has a very good use also as @sandip mentioned. Thanks.