cancel
Showing results for 
Search instead for 
Did you mean: 

Analyst widget in Dash

simon_watson_sj
New Contributor III

Hi Team,

I use Grammar of Graphics (GoG) in the Analyst widget in Dash for both a project at my work (where I am on the KX platform) and for a project at home where I use KX Dashboards Direct with Developer. I find GoG to be a real gem - super configurable and forgiving of large datasets. I also figured out that if I use dash controls to save variables back to the server, I can use those standard Dash controls to manipulate GoG visualisations. However, although that means I can get controls to send data into GoG, I have been completely unsuccessful in getting variables out from GoG. 

For instance, if I click on a chart, I understand there should  be the functionality to save that click location to view state in the 'selected value' control on the widget. I could then use this to drive other processes outside of the GoG visualisation.

Does anyone know if this functionality is working on both KX Dashboards Direct (the standalone KX Dash implementation for use with Developer) and the KX Platform implementation of Dash? If so, do you have an example (or examples if the Dash versions differ in approach)? I know there are instructions on the widget but I have been unable to assign anything to a viewstate whether I use a dictionary or a symbol. My hope would be I could run your provided example, understand it and then adapt it to my use cases.

Thanks and regards,

Simon

1 ACCEPTED SOLUTION

khurley
New Contributor

Hi Simon,

 

I was doing similar recently and made an example dashboard as a reference, attached in GG-Click-ViewState-Test.json

 

Its a very simple example with an Analyst Visual Plot and a Data Grid.

Clicking a point on the Analyst Visual Plot populates the Data Grid with details of the clicked point.

 

Note: Enabling passing a viewstate depends on using .qp.s.onclick in your GoG code, details on that here: https://code.kx.com/developer/libraries/grammar-of-graphics-layer-settings/#qpsonclick

 

Some quick notes I made as reference when getting the click + view state functionality to work. Also found as comments in the dashboard:

// NOTES:
// - .qp.s.onclick is used to select the row of data based on the point that is clicked.
// - In dashboards we need a dictionary with two keys:
//    1. `viewstate - This is what we use to pass values into our "Selected Viewstate". NOTE: Must be of type list.
//    2. `tooltip - This is the values used in the tooltip when you click a point. Passing x as the value for this ensures you produce the full row of data in the tooltip

 

 

Any questions let me know.

 

Cheers,

Kevin

 

 

View solution in original post

4 REPLIES 4

davidcrossey
Moderator Moderator
Moderator

Hi Simon,

Interesting question.

From looking over Analyst Visual - KX Dashboards I don't think the internals of the GoG are exposed  such that they could be mapped to other viewstates, however hopefully the Community can clarify 🙏🏻

Cheers,

David

David

simon_watson_sj
New Contributor III

Thanks Dave - I will live in hope and as you say, see what they say!

 

khurley
New Contributor

Hi Simon,

 

I was doing similar recently and made an example dashboard as a reference, attached in GG-Click-ViewState-Test.json

 

Its a very simple example with an Analyst Visual Plot and a Data Grid.

Clicking a point on the Analyst Visual Plot populates the Data Grid with details of the clicked point.

 

Note: Enabling passing a viewstate depends on using .qp.s.onclick in your GoG code, details on that here: https://code.kx.com/developer/libraries/grammar-of-graphics-layer-settings/#qpsonclick

 

Some quick notes I made as reference when getting the click + view state functionality to work. Also found as comments in the dashboard:

// NOTES:
// - .qp.s.onclick is used to select the row of data based on the point that is clicked.
// - In dashboards we need a dictionary with two keys:
//    1. `viewstate - This is what we use to pass values into our "Selected Viewstate". NOTE: Must be of type list.
//    2. `tooltip - This is the values used in the tooltip when you click a point. Passing x as the value for this ensures you produce the full row of data in the tooltip

 

 

Any questions let me know.

 

Cheers,

Kevin

 

 

Hey Kevin,

Thanks so much for this - exactly what I was looking for. With this capability, GoG is a great way of generating visualisations if a 'server side' approach works for you.

Simon