What techniques are best to make charts dynamic like Marketwatch's advanced charting?

There are all these dropdowns that change ranges and what things are drawn on the graphs.

I think they are changing queries and parameters. Or are they changing views?
Or is changing views what I would have to do?
I am not sure how to dynamically change the query and the parameters on a page.

I think it is a different query when looking at the 1 day.
I can't tell what is done with parameters vs changing the query.

It is very snappy, and I am trying to do a small amount of that.

Also, how do I make a tooltip show the values from multiple series in an xy chart?

Alternatively because I can show multiple values in a tooltip for that, can I make a stacked bar chart in a time series chart, ?

I'll be wathcing this post as i'm interested to see how this would be achieved within Perspective, i did some windows in Vision where the user could select any historical tag from a dynamically created list, add it as a pen and edit pretty much anything that the easy chart allowed to be edit on a pen, also options to add calculated pens based on other pens, select date ranges or make it realtime, subplots, save and load configurations, export,etc...
Basically everything that was available to be configured via the datasets in a Vision Easy Chart and its properties, while not as pretty, the result looks similar to what i remember so i'm sure it can also be done in perspective.

Marketwatch seems to receive the inputs and write new series to their charting object dynamically.

I don't know that I saw a tutorial on doing that in Ignition.
I think it can be done, but I don't know the syntax to target or if all the characters needed would be allowed.
When I try to bind tooltips I can't write the # or % symbol for example.

Even if I knew how to target, the other part is that they must be building the additional columns from a dataset dynamically.
I would want to do that in named queries, but I think maybe that can only be done with functions on the database or has to be a generated dataset in a script.