Skip to content

Commit

Permalink
Feature/metrics plots in experiment tracking (#1102)
Browse files Browse the repository at this point in the history
* Add top-level tabs and logic to switch the content

Signed-off-by: Tynan DeBold <[email protected]>

* Position sticky the tabs for horizontal visibility

Signed-off-by: Tynan DeBold <[email protected]>

* Update component comments; small refactor; hide accordion header in Plots tab

Signed-off-by: Tynan DeBold <[email protected]>

* Add a MetricsPlots component with the chart-types tab system

Signed-off-by: Tynan DeBold <[email protected]>

* Create query for tracking metrics (#1150)

* Add MetricPlotType

Signed-off-by: Jannic Holzer <[email protected]>

* Add MetricPlotType as a strawberry enum type

Signed-off-by: Jannic Holzer <[email protected]>

* Add option to limit results for get_all_runs

Signed-off-by: Jannic Holzer <[email protected]>

* Add endpoint for metric data

Signed-off-by: Jannic Holzer <[email protected]>

* Add implementations for formatting metrics data

Signed-off-by: Jannic Holzer <[email protected]>

* Refactor run_metrics_data query to return a MetricDataset

Signed-off-by: Jannic Holzer <[email protected]>

* Add MetricDataset type

Signed-off-by: Jannic Holzer <[email protected]>

* Remove MetricPlotType type

Signed-off-by: Jannic Holzer <[email protected]>

* Refactor format_run_metric_data

Signed-off-by: Jannic Holzer <[email protected]>

* Add run_metrics_data to schema

Signed-off-by: Jannic Holzer <[email protected]>

* Add doc strings

Signed-off-by: Jannic Holzer <[email protected]>

* Add MetricDataset to schema

Signed-off-by: Jannic Holzer <[email protected]>

* Add pylint ignore

Signed-off-by: Jannic Holzer <[email protected]>

* Modify runs and metrics initialisation to use .values()

Signed-off-by: Jannic Holzer <[email protected]>

* Remove unused import

Signed-off-by: Jannic Holzer <[email protected]>

* Refactor metric naming not to account for dataset name 'root'

Signed-off-by: Jannic Holzer <[email protected]>

* Add end-to-end test for the runMetricsData query

Signed-off-by: Jannic Holzer <[email protected]>

* Rename MetricDataset to MetricPlotDataset to avoid confusion with MetricsDataSet

Signed-off-by: Jannic Holzer <[email protected]>

* Rename MetricDataset to MetricPlotDataset in schema

Signed-off-by: Jannic Holzer <[email protected]>

* Add type hints for runs and metrics in _initialise_metric_data_template

Signed-off-by: Jannic Holzer <[email protected]>

* Refactor return type of runMetricsData query

Signed-off-by: Jannic Holzer <[email protected]>

Signed-off-by: Jannic Holzer <[email protected]>
Signed-off-by: Tynan DeBold <[email protected]>
Co-authored-by: Tynan DeBold <[email protected]>

* Add metric plot data query on front-end (#1176)

* Feature/parallel chart (#1152)

* mock-data

Signed-off-by: huongg <[email protected]>

* base for parallel metrics chart

Signed-off-by: huongg <[email protected]>

* linePath component

Signed-off-by: huongg <[email protected]>

* pass selectedId from the run list

Signed-off-by: huongg <[email protected]>

* useContext to control hover state

Signed-off-by: huongg <[email protected]>

* simplify hover Context

Signed-off-by: huongg <[email protected]>

* move ticks and marker to component

Signed-off-by: huongg <[email protected]>

* install d3 v7

Signed-off-by: huongg <[email protected]>

* remove unused comment

Signed-off-by: huongg <[email protected]>

* move yAxis to be inside useEffect

Signed-off-by: huongg <[email protected]>

* use d3 hook in linePath instead

Signed-off-by: huongg <[email protected]>

* include comments for hooks and context

Signed-off-by: huongg <[email protected]>

* remove disable eslint

Signed-off-by: huongg <[email protected]>

* use css colour variables

Signed-off-by: huongg <[email protected]>

* set up ignore pattern for jest test with d3

Signed-off-by: huongg <[email protected]>

* testing rendering yAxis inside component

Signed-off-by: huongg <[email protected]>

* render axisG inside useEffect

Signed-off-by: huongg <[email protected]>

* hover vertical line

Signed-off-by: huongg <[email protected]>

* use graph to render ticks

Signed-off-by: huongg <[email protected]>

* dont render ticks if selected

Signed-off-by: huongg <[email protected]>

* resiale for svg

Signed-off-by: huongg <[email protected]>

* tooltip for the chart

Signed-off-by: huongg <[email protected]>

* update styling

Signed-off-by: huongg <[email protected]>

* render ticks on the left side

Signed-off-by: huongg <[email protected]>

* remove tooltip

Signed-off-by: huongg <[email protected]>

* highlight value over line

Signed-off-by: huongg <[email protected]>

* set viewbox for svg container

Signed-off-by: huongg <[email protected]>

* draw another line on the top when highlight

Signed-off-by: huongg <[email protected]>

* mock context for run-list-card tests

Signed-off-by: huongg <[email protected]>

* test for run-list

Signed-off-by: huongg <[email protected]>

* increase stroke width for line path

Signed-off-by: huongg <[email protected]>

* update props names and comments

Signed-off-by: huongg <[email protected]>

* tidy up styling for the chart

Signed-off-by: huongg <[email protected]>

* include unique key

Signed-off-by: huongg <[email protected]>

* assign uuid for fragment

Signed-off-by: huongg <[email protected]>

* increase the gap between header and the yaxis

Signed-off-by: huongg <[email protected]>

* Use d3.selection.raise to avoid redrawing lines; adjust spacing of svg

Signed-off-by: Tynan DeBold <[email protected]>

* group colours into variable

Signed-off-by: huongg <[email protected]>

* removed unused unhoveredData

Signed-off-by: huongg <[email protected]>

* put back the insertZeroWidthSpace(text) for tooltip

Signed-off-by: huongg <[email protected]>

* fixing the gap between y-axis

Signed-off-by: huongg <[email protected]>

* center the text vs the line

Signed-off-by: huongg <[email protected]>

* render ticks first

Signed-off-by: huongg <[email protected]>

* useMouseLeave instead mouseOut

Signed-off-by: huongg <[email protected]>

* render unique values for Yaxis

Signed-off-by: huongg <[email protected]>

* render line first then value for ticks later

Signed-off-by: huongg <[email protected]>

* dont render line if value is null

Signed-off-by: huongg <[email protected]>

* remove line stroke to be 1.5

Signed-off-by: huongg <[email protected]>

* remove selected values as no longer needs it

Signed-off-by: huongg <[email protected]>

* increase the bottom gap for the chart

Signed-off-by: huongg <[email protected]>

* update colour according to the design

Signed-off-by: huongg <[email protected]>

* update the right colour code in line-path

Signed-off-by: huongg <[email protected]>

* Size the chart to the available area; axis labels being drawn twice though (need to fix)

Signed-off-by: Tynan DeBold <[email protected]>

* Yaxis ompimization

Signed-off-by: Tynan DeBold <[email protected]>

* Better default values for state to fix console error

Signed-off-by: Tynan DeBold <[email protected]>

* Add a jest.config.js file to the test-lib app

Signed-off-by: Tynan DeBold <[email protected]>

* Remove that config; add transformIgnorePatterns object to jest object in package file of test project

Signed-off-by: Tynan DeBold <[email protected]>

* Add more patterns to transformIgnorePatterns

Signed-off-by: Tynan DeBold <[email protected]>

* Slight edit to the pattern

Signed-off-by: Tynan DeBold <[email protected]>

* Document error: d3 or plain JS?

Signed-off-by: Tynan DeBold <[email protected]>

* Revert (not a problem with plain document)

Signed-off-by: Tynan DeBold <[email protected]>

* Memoize the graphKeys value

Signed-off-by: Tynan DeBold <[email protected]>

* Remove transformIgnorePatterns in test lib

Signed-off-by: Tynan DeBold <[email protected]>

* Add jest property back to package.json

Signed-off-by: Tynan DeBold <[email protected]>

* Update bg colors

Signed-off-by: Tynan DeBold <[email protected]>

* Wire up the query to get the real data

Signed-off-by: Tynan DeBold <[email protected]>

* Don't pad the yAxis top and bottom; round the numbers to four sig. digits

Signed-off-by: Tynan DeBold <[email protected]>

* dont render the first and last line of value

Signed-off-by: huongg <[email protected]>

* Style fixes

Signed-off-by: Tynan DeBold <[email protected]>

* Update light-theme colors with new design

Signed-off-by: Tynan DeBold <[email protected]>

* Cursor: pointer on metric lines; cleanup

Signed-off-by: Tynan DeBold <[email protected]>

* Feature/parallel chart tooltip (#1186)

* first draft of the tooltip

Signed-off-by: huongg <[email protected]>

* create share tooltip for chart

Signed-off-by: huongg <[email protected]>

* set timeout to show tooltip

Signed-off-by: huongg <[email protected]>

* remove LinePath component as it no longer needs

Signed-off-by: huongg <[email protected]>

* remove unused styling

Signed-off-by: huongg <[email protected]>

* styling sorting

Signed-off-by: huongg <[email protected]>

* set default props for tooltip

Signed-off-by: huongg <[email protected]>

* use css to fadein tooltip instead timeout

Signed-off-by: huongg <[email protected]>

* not to reset opacity after the animation

Signed-off-by: huongg <[email protected]>

* sorting

Co-authored-by: Tynan DeBold <[email protected]>

* sorting props

Co-authored-by: Tynan DeBold <[email protected]>

* set tooltip to default value on mouseout

Co-authored-by: Tynan DeBold <[email protected]>

* declare variable on the top

Co-authored-by: Tynan DeBold <[email protected]>

* declare variable on the top

Co-authored-by: Tynan DeBold <[email protected]>

* pull the latest changes

Signed-off-by: huongg <[email protected]>

* formate date

Signed-off-by: huongg <[email protected]>

* use sidebarWidth from the config

Signed-off-by: huongg <[email protected]>

* update label name

Co-authored-by: Tynan DeBold <[email protected]>

* update label name

Co-authored-by: Tynan DeBold <[email protected]>

* update label name

Co-authored-by: Tynan DeBold <[email protected]>

Signed-off-by: huongg <[email protected]>
Co-authored-by: Tynan DeBold <[email protected]>

* Slight refactor and improvements to D3 element groupings

Signed-off-by: Tynan DeBold <[email protected]>

* Tooltip light theme colors

Signed-off-by: Tynan DeBold <[email protected]>

* Clearer variable naming

Signed-off-by: Tynan DeBold <[email protected]>

* Clearer naming; use real data again

Signed-off-by: Tynan DeBold <[email protected]>

Signed-off-by: huongg <[email protected]>
Signed-off-by: Tynan DeBold <[email protected]>
Co-authored-by: Tynan DeBold <[email protected]>
Co-authored-by: rashidakanchwala <[email protected]>

* Intergrate time series (#1181)

* Time series tooltip (#1192)

* mock-data

Signed-off-by: huongg <[email protected]>

* base for parallel metrics chart

Signed-off-by: huongg <[email protected]>

* linePath component

Signed-off-by: huongg <[email protected]>

* pass selectedId from the run list

Signed-off-by: huongg <[email protected]>

* useContext to control hover state

Signed-off-by: huongg <[email protected]>

* simplify hover Context

Signed-off-by: huongg <[email protected]>

* move ticks and marker to component

Signed-off-by: huongg <[email protected]>

* install d3 v7

Signed-off-by: huongg <[email protected]>

* remove unused comment

Signed-off-by: huongg <[email protected]>

* move yAxis to be inside useEffect

Signed-off-by: huongg <[email protected]>

* use d3 hook in linePath instead

Signed-off-by: huongg <[email protected]>

* include comments for hooks and context

Signed-off-by: huongg <[email protected]>

* remove disable eslint

Signed-off-by: huongg <[email protected]>

* use css colour variables

Signed-off-by: huongg <[email protected]>

* set up ignore pattern for jest test with d3

Signed-off-by: huongg <[email protected]>

* testing rendering yAxis inside component

Signed-off-by: huongg <[email protected]>

* render axisG inside useEffect

Signed-off-by: huongg <[email protected]>

* hover vertical line

Signed-off-by: huongg <[email protected]>

* use graph to render ticks

Signed-off-by: huongg <[email protected]>

* dont render ticks if selected

Signed-off-by: huongg <[email protected]>

* resiale for svg

Signed-off-by: huongg <[email protected]>

* tooltip for the chart

Signed-off-by: huongg <[email protected]>

* update styling

Signed-off-by: huongg <[email protected]>

* render ticks on the left side

Signed-off-by: huongg <[email protected]>

* remove tooltip

Signed-off-by: huongg <[email protected]>

* highlight value over line

Signed-off-by: huongg <[email protected]>

* set viewbox for svg container

Signed-off-by: huongg <[email protected]>

* draw another line on the top when highlight

Signed-off-by: huongg <[email protected]>

* mock context for run-list-card tests

Signed-off-by: huongg <[email protected]>

* test for run-list

Signed-off-by: huongg <[email protected]>

* increase stroke width for line path

Signed-off-by: huongg <[email protected]>

* update props names and comments

Signed-off-by: huongg <[email protected]>

* tidy up styling for the chart

Signed-off-by: huongg <[email protected]>

* include unique key

Signed-off-by: huongg <[email protected]>

* assign uuid for fragment

Signed-off-by: huongg <[email protected]>

* increase the gap between header and the yaxis

Signed-off-by: huongg <[email protected]>

* Use d3.selection.raise to avoid redrawing lines; adjust spacing of svg

Signed-off-by: Tynan DeBold <[email protected]>

* group colours into variable

Signed-off-by: huongg <[email protected]>

* removed unused unhoveredData

Signed-off-by: huongg <[email protected]>

* put back the insertZeroWidthSpace(text) for tooltip

Signed-off-by: huongg <[email protected]>

* fixing the gap between y-axis

Signed-off-by: huongg <[email protected]>

* center the text vs the line

Signed-off-by: huongg <[email protected]>

* render ticks first

Signed-off-by: huongg <[email protected]>

* useMouseLeave instead mouseOut

Signed-off-by: huongg <[email protected]>

* render unique values for Yaxis

Signed-off-by: huongg <[email protected]>

* render line first then value for ticks later

Signed-off-by: huongg <[email protected]>

* dont render line if value is null

Signed-off-by: huongg <[email protected]>

* remove line stroke to be 1.5

Signed-off-by: huongg <[email protected]>

* remove selected values as no longer needs it

Signed-off-by: huongg <[email protected]>

* increase the bottom gap for the chart

Signed-off-by: huongg <[email protected]>

* update colour according to the design

Signed-off-by: huongg <[email protected]>

* update the right colour code in line-path

Signed-off-by: huongg <[email protected]>

* Size the chart to the available area; axis labels being drawn twice though (need to fix)

Signed-off-by: Tynan DeBold <[email protected]>

* Yaxis ompimization

Signed-off-by: Tynan DeBold <[email protected]>

* Better default values for state to fix console error

Signed-off-by: Tynan DeBold <[email protected]>

* Add a jest.config.js file to the test-lib app

Signed-off-by: Tynan DeBold <[email protected]>

* Remove that config; add transformIgnorePatterns object to jest object in package file of test project

Signed-off-by: Tynan DeBold <[email protected]>

* Add more patterns to transformIgnorePatterns

Signed-off-by: Tynan DeBold <[email protected]>

* Slight edit to the pattern

Signed-off-by: Tynan DeBold <[email protected]>

* Document error: d3 or plain JS?

Signed-off-by: Tynan DeBold <[email protected]>

* Revert (not a problem with plain document)

Signed-off-by: Tynan DeBold <[email protected]>

* Memoize the graphKeys value

Signed-off-by: Tynan DeBold <[email protected]>

* Remove transformIgnorePatterns in test lib

Signed-off-by: Tynan DeBold <[email protected]>

* Add jest property back to package.json

Signed-off-by: Tynan DeBold <[email protected]>

* Update bg colors

Signed-off-by: Tynan DeBold <[email protected]>

* Wire up the query to get the real data

Signed-off-by: Tynan DeBold <[email protected]>

* WIP

* Don't pad the yAxis top and bottom; round the numbers to four sig. digits

Signed-off-by: Tynan DeBold <[email protected]>

* call-yaxis-on-parellel

* dont render the first and last line of value

Signed-off-by: huongg <[email protected]>

* hovering and all

* Style fixes

Signed-off-by: Tynan DeBold <[email protected]>

* Update light-theme colors with new design

Signed-off-by: Tynan DeBold <[email protected]>

* Cursor: pointer on metric lines; cleanup

Signed-off-by: Tynan DeBold <[email protected]>

* first draft of the tooltip

Signed-off-by: huongg <[email protected]>

* Add scroll and reposition the charts

Signed-off-by: Cvetanka <[email protected]>

* css and hovering

* create share tooltip for chart

Signed-off-by: huongg <[email protected]>

* clean-up

* set timeout to show tooltip

Signed-off-by: huongg <[email protected]>

* remove LinePath component as it no longer needs

Signed-off-by: huongg <[email protected]>

* remove unused styling

Signed-off-by: huongg <[email protected]>

* styling sorting

Signed-off-by: huongg <[email protected]>

* now tooltip left

* set default props for tooltip

Signed-off-by: huongg <[email protected]>

* Feature/parallel chart tooltip (#1186)

* first draft of the tooltip

Signed-off-by: huongg <[email protected]>

* create share tooltip for chart

Signed-off-by: huongg <[email protected]>

* set timeout to show tooltip

Signed-off-by: huongg <[email protected]>

* remove LinePath component as it no longer needs

Signed-off-by: huongg <[email protected]>

* remove unused styling

Signed-off-by: huongg <[email protected]>

* styling sorting

Signed-off-by: huongg <[email protected]>

* set default props for tooltip

Signed-off-by: huongg <[email protected]>

* use css to fadein tooltip instead timeout

Signed-off-by: huongg <[email protected]>

* not to reset opacity after the animation

Signed-off-by: huongg <[email protected]>

* sorting

Co-authored-by: Tynan DeBold <[email protected]>

* sorting props

Co-authored-by: Tynan DeBold <[email protected]>

* set tooltip to default value on mouseout

Co-authored-by: Tynan DeBold <[email protected]>

* declare variable on the top

Co-authored-by: Tynan DeBold <[email protected]>

* declare variable on the top

Co-authored-by: Tynan DeBold <[email protected]>

* pull the latest changes

Signed-off-by: huongg <[email protected]>

* formate date

Signed-off-by: huongg <[email protected]>

* use sidebarWidth from the config

Signed-off-by: huongg <[email protected]>

* update label name

Co-authored-by: Tynan DeBold <[email protected]>

* update label name

Co-authored-by: Tynan DeBold <[email protected]>

* update label name

Co-authored-by: Tynan DeBold <[email protected]>

Signed-off-by: huongg <[email protected]>
Co-authored-by: Tynan DeBold <[email protected]>

* Slight refactor and improvements to D3 element groupings

Signed-off-by: Tynan DeBold <[email protected]>

* Tooltip light theme colors

Signed-off-by: Tynan DeBold <[email protected]>

* connected to real data

* tooltip in time series

Signed-off-by: huongg <[email protected]>

* util func to get position

Signed-off-by: huongg <[email protected]>

* adjust the left and right gap

Signed-off-by: huongg <[email protected]>

Signed-off-by: huongg <[email protected]>
Signed-off-by: Tynan DeBold <[email protected]>
Signed-off-by: Cvetanka <[email protected]>
Co-authored-by: Tynan DeBold <[email protected]>
Co-authored-by: rashidakanchwala <[email protected]>
Co-authored-by: Rashida Kanchwala <[email protected]>
Co-authored-by: Cvetanka <[email protected]>

* Feature/final touches on metrics plots (#1195)

* Raise parallel coordinates plot lines; start on runs list cards active indicators

Signed-off-by: Tynan DeBold <[email protected]>

* Update runs-list-card.test.js

Signed-off-by: Tynan DeBold <[email protected]>

* Show matching indicators in runs list cards

Signed-off-by: Tynan DeBold <[email protected]>

* Update metric line color, dark theme, par. coords

Signed-off-by: Tynan DeBold <[email protected]>

* Metric axis hover tweaks, par. coords.

Signed-off-by: Tynan DeBold <[email protected]>

* Add run selection indicators to run metadata area

Signed-off-by: Tynan DeBold <[email protected]>

* Rearrange order of colors for selected runs on time series

Signed-off-by: Tynan DeBold <[email protected]>

* Metric label shortening and tooltip text lengthening

Signed-off-by: Tynan DeBold <[email protected]>

* Limit the number of runs when displaying metrics plots

Signed-off-by: Tynan DeBold <[email protected]>

* fix for wrong highlight on value and tick

Signed-off-by: huongg <[email protected]>

* Typo fix and comment improvement

Signed-off-by: Tynan DeBold <[email protected]>

* eliminating all the lines, values, ticks that are not highlighted

Signed-off-by: huongg <[email protected]>

Signed-off-by: Tynan DeBold <[email protected]>
Signed-off-by: huongg <[email protected]>
Co-authored-by: huongg <[email protected]>

* update the right colour code for selectedMarkerColors

Signed-off-by: huongg <[email protected]>

* Add zoom to timeseries (#1191)

* mock-data

Signed-off-by: huongg <[email protected]>

* base for parallel metrics chart

Signed-off-by: huongg <[email protected]>

* linePath component

Signed-off-by: huongg <[email protected]>

* pass selectedId from the run list

Signed-off-by: huongg <[email protected]>

* useContext to control hover state

Signed-off-by: huongg <[email protected]>

* simplify hover Context

Signed-off-by: huongg <[email protected]>

* move ticks and marker to component

Signed-off-by: huongg <[email protected]>

* install d3 v7

Signed-off-by: huongg <[email protected]>

* remove unused comment

Signed-off-by: huongg <[email protected]>

* move yAxis to be inside useEffect

Signed-off-by: huongg <[email protected]>

* use d3 hook in linePath instead

Signed-off-by: huongg <[email protected]>

* include comments for hooks and context

Signed-off-by: huongg <[email protected]>

* remove disable eslint

Signed-off-by: huongg <[email protected]>

* use css colour variables

Signed-off-by: huongg <[email protected]>

* set up ignore pattern for jest test with d3

Signed-off-by: huongg <[email protected]>

* testing rendering yAxis inside component

Signed-off-by: huongg <[email protected]>

* render axisG inside useEffect

Signed-off-by: huongg <[email protected]>

* hover vertical line

Signed-off-by: huongg <[email protected]>

* use graph to render ticks

Signed-off-by: huongg <[email protected]>

* dont render ticks if selected

Signed-off-by: huongg <[email protected]>

* resiale for svg

Signed-off-by: huongg <[email protected]>

* tooltip for the chart

Signed-off-by: huongg <[email protected]>

* update styling

Signed-off-by: huongg <[email protected]>

* render ticks on the left side

Signed-off-by: huongg <[email protected]>

* remove tooltip

Signed-off-by: huongg <[email protected]>

* highlight value over line

Signed-off-by: huongg <[email protected]>

* set viewbox for svg container

Signed-off-by: huongg <[email protected]>

* draw another line on the top when highlight

Signed-off-by: huongg <[email protected]>

* mock context for run-list-card tests

Signed-off-by: huongg <[email protected]>

* test for run-list

Signed-off-by: huongg <[email protected]>

* increase stroke width for line path

Signed-off-by: huongg <[email protected]>

* update props names and comments

Signed-off-by: huongg <[email protected]>

* tidy up styling for the chart

Signed-off-by: huongg <[email protected]>

* include unique key

Signed-off-by: huongg <[email protected]>

* assign uuid for fragment

Signed-off-by: huongg <[email protected]>

* increase the gap between header and the yaxis

Signed-off-by: huongg <[email protected]>

* Use d3.selection.raise to avoid redrawing lines; adjust spacing of svg

Signed-off-by: Tynan DeBold <[email protected]>

* group colours into variable

Signed-off-by: huongg <[email protected]>

* removed unused unhoveredData

Signed-off-by: huongg <[email protected]>

* put back the insertZeroWidthSpace(text) for tooltip

Signed-off-by: huongg <[email protected]>

* fixing the gap between y-axis

Signed-off-by: huongg <[email protected]>

* center the text vs the line

Signed-off-by: huongg <[email protected]>

* render ticks first

Signed-off-by: huongg <[email protected]>

* useMouseLeave instead mouseOut

Signed-off-by: huongg <[email protected]>

* render unique values for Yaxis

Signed-off-by: huongg <[email protected]>

* render line first then value for ticks later

Signed-off-by: huongg <[email protected]>

* dont render line if value is null

Signed-off-by: huongg <[email protected]>

* remove line stroke to be 1.5

Signed-off-by: huongg <[email protected]>

* remove selected values as no longer needs it

Signed-off-by: huongg <[email protected]>

* increase the bottom gap for the chart

Signed-off-by: huongg <[email protected]>

* update colour according to the design

Signed-off-by: huongg <[email protected]>

* update the right colour code in line-path

Signed-off-by: huongg <[email protected]>

* Size the chart to the available area; axis labels being drawn twice though (need to fix)

Signed-off-by: Tynan DeBold <[email protected]>

* Yaxis ompimization

Signed-off-by: Tynan DeBold <[email protected]>

* Better default values for state to fix console error

Signed-off-by: Tynan DeBold <[email protected]>

* Add a jest.config.js file to the test-lib app

Signed-off-by: Tynan DeBold <[email protected]>

* Remove that config; add transformIgnorePatterns object to jest object in package file of test project

Signed-off-by: Tynan DeBold <[email protected]>

* Add more patterns to transformIgnorePatterns

Signed-off-by: Tynan DeBold <[email protected]>

* Slight edit to the pattern

Signed-off-by: Tynan DeBold <[email protected]>

* Document error: d3 or plain JS?

Signed-off-by: Tynan DeBold <[email protected]>

* Revert (not a problem with plain document)

Signed-off-by: Tynan DeBold <[email protected]>

* Memoize the graphKeys value

Signed-off-by: Tynan DeBold <[email protected]>

* Remove transformIgnorePatterns in test lib

Signed-off-by: Tynan DeBold <[email protected]>

* Add jest property back to package.json

Signed-off-by: Tynan DeBold <[email protected]>

* Update bg colors

Signed-off-by: Tynan DeBold <[email protected]>

* Wire up the query to get the real data

Signed-off-by: Tynan DeBold <[email protected]>

* WIP

* Don't pad the yAxis top and bottom; round the numbers to four sig. digits

Signed-off-by: Tynan DeBold <[email protected]>

* call-yaxis-on-parellel

* dont render the first and last line of value

Signed-off-by: huongg <[email protected]>

* hovering and all

* Style fixes

Signed-off-by: Tynan DeBold <[email protected]>

* Update light-theme colors with new design

Signed-off-by: Tynan DeBold <[email protected]>

* Cursor: pointer on metric lines; cleanup

Signed-off-by: Tynan DeBold <[email protected]>

* first draft of the tooltip

Signed-off-by: huongg <[email protected]>

* Add scroll and reposition the charts

Signed-off-by: Cvetanka <[email protected]>

* css and hovering

* create share tooltip for chart

Signed-off-by: huongg <[email protected]>

* clean-up

* set timeout to show tooltip

Signed-off-by: huongg <[email protected]>

* remove LinePath component as it no longer needs

Signed-off-by: huongg <[email protected]>

* remove unused styling

Signed-off-by: huongg <[email protected]>

* styling sorting

Signed-off-by: huongg <[email protected]>

* now tooltip left

* set default props for tooltip

Signed-off-by: huongg <[email protected]>

* Feature/parallel chart tooltip (#1186)

* first draft of the tooltip

Signed-off-by: huongg <[email protected]>

* create share tooltip for chart

Signed-off-by: huongg <[email protected]>

* set timeout to show tooltip

Signed-off-by: huongg <[email protected]>

* remove LinePath component as it no longer needs

Signed-off-by: huongg <[email protected]>

* remove unused styling

Signed-off-by: huongg <[email protected]>

* styling sorting

Signed-off-by: huongg <[email protected]>

* set default props for tooltip

Signed-off-by: huongg <[email protected]>

* use css to fadein tooltip instead timeout

Signed-off-by: huongg <[email protected]>

* not to reset opacity after the animation

Signed-off-by: huongg <[email protected]>

* sorting

Co-authored-by: Tynan DeBold <[email protected]>

* sorting props

Co-authored-by: Tynan DeBold <[email protected]>

* set tooltip to default value on mouseout

Co-authored-by: Tynan DeBold <[email protected]>

* declare variable on the top

Co-authored-by: Tynan DeBold <[email protected]>

* declare variable on the top

Co-authored-by: Tynan DeBold <[email protected]>

* pull the latest changes

Signed-off-by: huongg <[email protected]>

* formate date

Signed-off-by: huongg <[email protected]>

* use sidebarWidth from the config

Signed-off-by: huongg <[email protected]>

* update label name

Co-authored-by: Tynan DeBold <[email protected]>

* update label name

Co-authored-by: Tynan DeBold <[email protected]>

* update label name

Co-authored-by: Tynan DeBold <[email protected]>

Signed-off-by: huongg <[email protected]>
Co-authored-by: Tynan DeBold <[email protected]>

* Slight refactor and improvements to D3 element groupings

Signed-off-by: Tynan DeBold <[email protected]>

* Tooltip light theme colors

Signed-off-by: Tynan DeBold <[email protected]>

* connected to real data

* Add zoom to timeseries

Signed-off-by: Cvetanka <[email protected]>

* call zoom on x-axis

Signed-off-by: huongg <[email protected]>

* Add path on zoom update

Signed-off-by: Cvetanka <[email protected]>

* reference line zoom -WIP

* Add dottedLinePath to updateZoom

Signed-off-by: Cvetanka <[email protected]>

* SelectedLine add to zoom

Signed-off-by: Cvetanka <[email protected]>

* Add id to path for selectedLine

Signed-off-by: Cvetanka <[email protected]>

* Zoom functionality finally works with all chart elements

Signed-off-by: Cvetanka <[email protected]>

* Add brush to zoom

Signed-off-by: Cvetanka <[email protected]>

* Add transition on xAxis values

Signed-off-by: Cvetanka <[email protected]>

* Fix default position to be above xAxis - selected area

Signed-off-by: Cvetanka <[email protected]>

* fix merge issue

* Use selectAll instead of select - brush to be applied on all charts

Signed-off-by: Cvetanka <[email protected]>

* Add selectAll to one more place

Signed-off-by: Cvetanka <[email protected]>

* fixes for zoom

* Reset zoom when new run is selected

Signed-off-by: Cvetanka <[email protected]>

* Clear comments

Signed-off-by: Cvetanka <[email protected]>

* Chnaged color and class renamed

Signed-off-by: Cvetanka <[email protected]>

* Format the component

Signed-off-by: Cvetanka <[email protected]>

* Add default value to rangeSelection

Signed-off-by: Cvetanka <[email protected]>

* Add minified d3 build to jest

Signed-off-by: Cvetanka <[email protected]>

* Changed jest transformIgnorePatterns

Signed-off-by: Cvetanka <[email protected]>

* change it back as it was jest - transformIgnorePatterns

Signed-off-by: Cvetanka <[email protected]>

* Add d3-brush to jest

Signed-off-by: Cvetanka <[email protected]>

* Add d3-zoom to jest

Signed-off-by: Cvetanka <[email protected]>

* add all

Signed-off-by: Cvetanka <[email protected]>

* revert last changes

Signed-off-by: Cvetanka <[email protected]>

* Repositioned brush

Signed-off-by: Cvetanka <[email protected]>

Signed-off-by: huongg <[email protected]>
Signed-off-by: Tynan DeBold <[email protected]>
Signed-off-by: Cvetanka <[email protected]>
Co-authored-by: Tynan DeBold <[email protected]>
Co-authored-by: rashidakanchwala <[email protected]>
Co-authored-by: Rashida Kanchwala <[email protected]>
Co-authored-by: Cvetanka <[email protected]>

* bring brush to back so hover functionality works

* handle nulls (#1199)

* Dynamically set the width of parallel coords plot when there are many metrics

Signed-off-by: Tynan DeBold <[email protected]>

* Demo data with more metrics (#1202)

* added more metrics for nicer looking data

* Update rf_score.json

* Update rf_score.json

* Take metric name from end instead of beginning

Signed-off-by: Tynan DeBold <[email protected]>

Signed-off-by: Tynan DeBold <[email protected]>
Co-authored-by: Tynan DeBold <[email protected]>

* Hook up the query again for parallel coordinates

Signed-off-by: Tynan DeBold <[email protected]>

* Add spacing to last time series chart

Signed-off-by: Tynan DeBold <[email protected]>

* Feature/parallel coords tests (#1200)

* tests use cases

Signed-off-by: huongg <[email protected]>

* test for graph metrics

Signed-off-by: huongg <[email protected]>

* create util function to get unique values

Signed-off-by: huongg <[email protected]>

* test for hover interaction

Signed-off-by: huongg <[email protected]>

* tests for single and comparison mode run

Signed-off-by: huongg <[email protected]>

* test for hovering metric

Signed-off-by: huongg <[email protected]>

* test for showing tooltip

Signed-off-by: huongg <[email protected]>

* text is highlighted once from the metrics

Signed-off-by: huongg <[email protected]>

* move setChartWidth and Height to the parents component

Signed-off-by: huongg <[email protected]>

* include mock selected Runs

Signed-off-by: huongg <[email protected]>

* set default value to 0 if xScale or yScale returns a NaN

Signed-off-by: huongg <[email protected]>

* use metricsLimit for the tests

Signed-off-by: huongg <[email protected]>

* update variable name

Co-authored-by: Tynan DeBold <[email protected]>

* update variable names

Signed-off-by: huongg <[email protected]>

Signed-off-by: huongg <[email protected]>
Co-authored-by: Tynan DeBold <[email protected]>

* include ignore pattern in the package.json inside test-lib/react-app (#1203)

Signed-off-by: huongg <[email protected]>

Signed-off-by: huongg <[email protected]>

* Use mock data so Mackay can test

Signed-off-by: Tynan DeBold <[email protected]>

* Fix small SCSS warning messages

Signed-off-by: Tynan DeBold <[email protected]>

* fix-color-names

* Time series - tests (#1198)

* First test case scenarios - wip

Signed-off-by: Cvetanka <[email protected]>

* add test for 'renders without crashing' - wip

Signed-off-by: Cvetanka <[email protected]>

* Add tests

Signed-off-by: Cvetanka <[email protected]>

* update tests descriptions

Signed-off-by: Cvetanka <[email protected]>

* Add test for the tooltip

Signed-off-by: Cvetanka <[email protected]>

* Add test for 'blend' class

Signed-off-by: Cvetanka <[email protected]>

* Use mockData for selectedRuns

Signed-off-by: Cvetanka <[email protected]>

* Add variable for hoveredMockValue and update test descriptions

Signed-off-by: Cvetanka <[email protected]>

* Fix test scenarios for '--blend' class when hoveredElementId is null

Signed-off-by: Cvetanka <[email protected]>

* Add test for ordered selectedGroup

Signed-off-by: Cvetanka <[email protected]>

* Add default chart width to remove the errors

Signed-off-by: Cvetanka <[email protected]>

* Update tests for 'blend' class

Signed-off-by: Cvetanka <[email protected]>

* Update hovered run line test

Signed-off-by: Cvetanka <[email protected]>

* Add one more test case for applied blend class

Signed-off-by: Cvetanka <[email protected]>

* Add test for dblclick event

Signed-off-by: Cvetanka <[email protected]>

* Clear code

Signed-off-by: Cvetanka <[email protected]>

* Formatted code

Signed-off-by: Cvetanka <[email protected]>

Signed-off-by: Cvetanka <[email protected]>

* Add clipPath for selected zoom area (#1204)

* Add clipPath for selected zoom area

Signed-off-by: Cvetanka <[email protected]>

* Fix brush clipPath dimensions

Signed-off-by: Cvetanka <[email protected]>

* Sorted props

Signed-off-by: Cvetanka <[email protected]>

Signed-off-by: Cvetanka <[email protected]>

* Improve the Demo Data so it can show a better metric timeline  (#1209)

* Small refactor and update

Signed-off-by: Tynan DeBold <[email protected]>

* Style update on run comparison to ensure hidden title can't be selected

Signed-off-by: Tynan DeBold <[email protected]>

* Remove dummy data

Signed-off-by: Tynan DeBold <[email protected]>

* Remove session store before merge

Signed-off-by: Tynan DeBold <[email protected]>

* Update release notes

Signed-off-by: Tynan DeBold <[email protected]>

* Update session store with Rashida's nice examples

Signed-off-by: Tynan DeBold <[email protected]>

* Max metrics to 50; small warning added for runs without plots

Signed-off-by: Tynan DeBold <[email protected]>

Signed-off-by: Tynan DeBold <[email protected]>
Signed-off-by: Jannic Holzer <[email protected]>
Signed-off-by: huongg <[email protected]>
Signed-off-by: Cvetanka <[email protected]>
Co-authored-by: Jannic <[email protected]>
Co-authored-by: rashidakanchwala <[email protected]>
Co-authored-by: Huong Nguyen <[email protected]>
Co-authored-by: Rashida Kanchwala <[email protected]>
Co-authored-by: Cvetanka <[email protected]>
Co-authored-by: huongg <[email protected]>
Co-authored-by: Cvetanka Nechevska <[email protected]>
  • Loading branch information
8 people authored Jan 18, 2023
1 parent 7a3672c commit 193cbb9
Show file tree
Hide file tree
Showing 150 changed files with 3,641 additions and 416 deletions.
3 changes: 2 additions & 1 deletion RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@ Please follow the established format:
- Include the ID number for the related PR (or PRs) in parentheses
-->

# Next release
# Release 5.2.0

## Major features and improvements

- Allow users to hide modular pipelines on the flowchart. (#1046)
- Create URL parameters for each element/section in the flowchart. (#1138)
- Improve CLI loading time. (#1196)
- Make Kedro-Viz compatible with kedro-datasets. (#1214)
- Add time series and parallel coordinates metrics plots to experiment tracking. (#1102)

## Bug fixes and other changes

Expand Down
4 changes: 2 additions & 2 deletions demo-project/conf/base/catalog_09_tracking.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
train_evaluation.linear_regression.r2_score:
train_evaluation.linear_regression:
type: tracking.MetricsDataSet
filepath: ${base_location}/09_tracking/linear_score.json
versioned: True

train_evaluation.random_forest.r2_score:
train_evaluation.random_forest:
type: tracking.MetricsDataSet
filepath: ${base_location}/09_tracking/rf_score.json
versioned: True
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"r2_score": 0.42984606386233715,
"a2_score": 7.9,
"b2_score": 2.8000000000000003
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"a2_score": 2.1,
"b2_score": 6.300000000000001,
"r2_score": 0.4298460638623369
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"a2_score": 6.6000000000000005,
"b2_score": 7.5,
"r2_score": 0.4298460638623375
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"a2_score": 9.0,
"b2_score": 5.1000000000000005,
"r2_score": 0.4298460638623375
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 8.1,
"b2_score": 6.4,
"r2_score": 0.4298460638623375
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 2.1,
"b2_score": 6.300000000000001,
"r2_score": 0.42984606386233715
}
}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"a2_score": 6.0,
"b2_score": 7.1000000000000005,
"r2_score": 0.42984606386233715
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "a2_score": 1.0, "b2_score": 3.6, "r2_score": 0.42984606386233715 }
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "a2_score": 2.1, "b2_score": 7.7, "r2_score": 0.42984606386233737 }
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"a2_score": 2.8000000000000003,
"b2_score": 7.300000000000001,
"r2_score": 0.40296896595214116
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"a2_score": 9.700000000000001,
"b2_score": 0.2,
"r2_score": 0.4298460638623369
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "a2_score": 7.5, "b2_score": 8.5, "r2_score": 0.42984606386233715 }
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 1.9000000000000001,
"b2_score": 6.7,
"r2_score": 0.40296896595214116
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 2.8000000000000003,
"b2_score": 1.1,
"r2_score": 0.40296896595214116
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 3.9000000000000004,
"b2_score": 6.6000000000000005,
"r2_score": 0.40296896595214116
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 3.8000000000000003,
"b2_score": 1.0,
"r2_score": 0.40296896595214116
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
{
"r2_score": 0.40296896595214116
}
{ "a2_score": 8.9, "b2_score": 3.2, "r2_score": 0.40296896595214116 }
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 7.7,
"b2_score": 6.6000000000000005,
"r2_score": 0.40296896595214116
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 9.600000000000001,
"b2_score": 9.5,
"r2_score": 0.40296896595214116
}
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 1.4000000000000001,
"b2_score": 6.1000000000000005,
"r2_score": 0.40296896595214116
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"a2_score": 1.4000000000000001,
"b2_score": 6.1000000000000005,
"r2_score": 0.40296896595214116
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "a2_score": 8.0, "b2_score": 8.3, "r2_score": 0.40296896595214116 }
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "a2_score": 3.6, "b2_score": 3.1, "r2_score": 0.40296896595214116 }
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"a2_score": 1.6,
"b2_score": 9.200000000000001,
"r2_score": 1.4000000000000001
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"a2_score": 5.6000000000000005,
"b2_score": 5.2,
"r2_score": 6.1000000000000005
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"a2_score": 2.6,
"b2_score": 3.5,

"r2_score": 6.2
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"a2_score": 9.9,
"b2_score": 4.800000000000001,

"r2_score": 7.6000000000000005
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"r2_score": 0.4253180385244386
}
"a2_score": 7.0,
"b2_score": 1.7000000000000002,
"r2_score": 0.7000000000000001
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"r2_score": 0.3995745575424837
}
"a2_score": 7.5,
"b2_score": 9.1,
"r2_score": 6.6000000000000005
}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"a2_score": 8.4,
"b2_score": 8.4,

"r2_score": 1.3
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"a2_score": 2.5,
"b2_score": 4.4,

"r2_score": 1.5
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"a2_score": 2.8000000000000003,
"b2_score": 6.800000000000001,

"r2_score": 2.7
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"a2_score": 1.2000000000000002,
"b2_score": 7.800000000000001,
"r2_score": 9.200000000000001
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"a2_score": 4.5,
"b2_score": 3.6,

"r2_score": 7.4
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"a2_score": 6.2,
"b2_score": 1.6,

"r2_score": 0.6000000000000001
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
{
"r2_score": 0.42034590382281145
}
"a2_score": 4.4,
"b2_score": 8.1,

"r2_score": 0.6000000000000001
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
{
"r2_score": 0.4084434438644098
}
"a2_score": 8.5,
"b2_score": 9.1,

"r2_score": 9.9
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
{
"r2_score": 0.42273401064875815
}
"a2_score": 3.9000000000000004,
"b2_score": 5.300000000000001,

"r2_score": 7.4
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
{
"r2_score": 0.39012830003365784
}
"a2_score": 1.8,
"b2_score": 0.1,

"r2_score": 5.7
}
Loading

0 comments on commit 193cbb9

Please sign in to comment.