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

Pareto-front visualisation #16

Closed
2 tasks done
GoelBiju opened this issue Jan 28, 2021 · 8 comments · Fixed by #39
Closed
2 tasks done

Pareto-front visualisation #16

GoelBiju opened this issue Jan 28, 2021 · 8 comments · Fixed by #39
Assignees
Labels
Backend Issues related to the server/database Frontend Issues related to the frontend application MVP Part of the minimum viable product (MVP)

Comments

@GoelBiju
Copy link
Owner

GoelBiju commented Jan 28, 2021

Description:

Make use of the scatter graph to create a Pareto front estimation graphs using the DTLZ1 and DTLZ2 sample data.

Acceptance criteria:

  • Shows all the generations data as it comes in
  • Plots the solutions from each generation on the graph as a Pareto front estimation
@GoelBiju GoelBiju added Frontend Issues related to the frontend application Backend Issues related to the server/database labels Jan 28, 2021
@GoelBiju GoelBiju changed the title Pareto front visualisation Pareto-front visualisation Feb 2, 2021
@GoelBiju GoelBiju added the MVP Part of the minimum viable product (MVP) label Feb 2, 2021
@GoelBiju GoelBiju self-assigned this Feb 25, 2021
@GoelBiju
Copy link
Owner Author

One issue that was to be solved was the fact that in the original code I was not scaling each x and y co-ordinate but was instead plotting straight onto the graph. This meant when I plugged in the data all the points were plotted onto one single point. The fix for this was to call xScale and yScale with the x and y values respectively which would then scale it to the correct position on the graph. I had noticed this when testing out some sample code in a basic HTML page.

@GoelBiju
Copy link
Owner Author

GoelBiju commented Feb 25, 2021

Another bug I need to fix now is to correct the rendering of points. At the moment points are just appended onto the graph without the old points disappearing. The old points need to be cleared before updating the graph with the new ones (similar to this post).

This is the plot with all the 282 generations (282 * 100 points), we should only have 100 points per generation:

image

@GoelBiju
Copy link
Owner Author

A bug to fix is that the scales increase and decrease as the optimisation run moves onwards. This should not happen as the data values decrease over time. This could be due to the fact the data in the frontend state can change at different times meaning different values get updated out of order.

@GoelBiju
Copy link
Owner Author

Another bug I need to fix now is to correct the rendering of points. At the moment points are just appended onto the graph without the old points disappearing. The old points need to be cleared before updating the graph with the new ones (similar to this post).

This is the plot with all the 282 generations (282 * 100 points), we should only have 100 points per generation:

image

As a follow-up to removing the old points, the update function in the visualisation component for the plugin is now clearing all the circles before appending the new ones (as suggested on this post).

@GoelBiju
Copy link
Owner Author

GoelBiju commented Feb 26, 2021

Still, to-do for this issue is:

  • Fetch data with confirmation that the last fetched one has been shown and cleared,
  • Test out DTLZ2 dataset and check with the sample data plot provided,
  • Test both DTLZ1 and DTLZ2 running in parallel,
  • Add a queue of the generation to fetch data for,
  • Show completed status.

@GoelBiju
Copy link
Owner Author

GoelBiju commented Feb 27, 2021

I have not used the GenerationQueue class that was created to manage the queue since it would make it more complex to update the state for an object created from the class. Instead, I have created a list and the functions in the VisualisationContainer to keep a queue of the generations received (similar to this post).

GoelBiju added a commit that referenced this issue Feb 28, 2021
@GoelBiju
Copy link
Owner Author

GoelBiju commented Feb 28, 2021

As an update, I am currently working on re-organising the content on the visualisation container to show additional run information.

I want the visualisation to also show a D3 tooltip when hovered indicating the point x,y locations, similar to this example:

  • [ ] Show tooltip over each point in the visualisation with the exact X and Y.

GoelBiju added a commit that referenced this issue Feb 28, 2021
GoelBiju added a commit that referenced this issue Mar 1, 2021
GoelBiju added a commit that referenced this issue Mar 1, 2021
@GoelBiju
Copy link
Owner Author

GoelBiju commented Mar 1, 2021

As an update, I am currently working on re-organising the content on the visualisation container to show additional run information.

I want the visualisation to also show a D3 tooltip when hovered indicating the point x,y locations, similar to this example:

  • [ ] Show tooltip over each point in the visualisation with the exact X and Y.

I have moved this to a new issue (#40) as this will take more time than expected.

@GoelBiju GoelBiju closed this as completed Mar 1, 2021
GoelBiju added a commit that referenced this issue Mar 1, 2021
GoelBiju added a commit that referenced this issue Mar 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Backend Issues related to the server/database Frontend Issues related to the frontend application MVP Part of the minimum viable product (MVP)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant