Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement visualizing plots in experiment tracking #953

Closed
1 task done
tynandebold opened this issue Jul 4, 2022 · 3 comments · Fixed by #984
Closed
1 task done

Implement visualizing plots in experiment tracking #953

tynandebold opened this issue Jul 4, 2022 · 3 comments · Fixed by #984

Comments

@tynandebold
Copy link
Member

Description

This ticket focuses on the implementation of the design work created in #938.

The backend will need to recognize the versioned plots (Matplotlib and Plotly Datasets) and the frontend will need to display them, with the behavior outlined in the Figma files:

  1. Finding and exploring plots - single view
  2. Finding and exploring plots - comparison view
  3. Expanded graphs, page variations (1,2 and 3 runs)

Checklist

  • Include labels so that we can categorise your feature request
@tynandebold
Copy link
Member Author

tynandebold commented Jul 4, 2022

Plan of action

  • In graphql.py, line 235: look for matplotlib and ploty with version==true
    • there are two plotly datasets that we need to check for here. look in the shortTypeMapping config var
  • graphql.py, line 249: needs to become something more generic and what's passed to the FE is either JSON or PNG/JPG. base64 the matplotlib img
    • we want to keep the same data structure as well (key/value pairs). the key would be the filename, and there's only one value, which is the JSON for Plotly or the base64 image for matplotlib
  • on the frontend, according to the dataset type, show the appropriate plot or data
  • update shortTypeMapping and add the two missing dataset, e.g "kedro.extras.datasets.tracking.metrics_dataset.MetricsDataSet"
  • break up the tracking datasets into sections: plots, metrics, JSON data. More info below...

Plots at the top

We also want to plots to appear at the top of the tracking area. They should go into their own accordion as well, as shown here in the design:

image

We'll have three groups: Plots, Metrics, and JSON. Our runTrackingData query will now return the following:

type GroupedDataset {
  groupedDatasetType: String 
  dataset: TrackingDataset[]
}

TrackingDataset stays as is:

type TrackingDataset {
  datasetName: String
  datasetType: String
  data: JSONObject
}

@antonymilne
Copy link
Contributor

Don't we still want datasetType in TrackingDataset so that we can switch between rendering differently matplotlib png vs. plotly json data?

@rashidakanchwala rashidakanchwala moved this from Todo to In Progress in Kedro-Viz Jul 5, 2022
@tynandebold
Copy link
Member Author

tynandebold commented Jul 5, 2022

@AntonyMilneQB yes. Updated. Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment