adaptive icon indicating copy to clipboard operation
adaptive copied to clipboard

Mark latest points in the live plot

Open jbweston opened this issue 6 years ago • 6 comments

(original issue on GitLab)

opened by Anton Akhmerov (@anton-akhmerov) at 2017-10-01T10:31:03.988Z

The live plot is a useful tool in judging the quality of the result, and figuring out what is happening.

In order to make it even more awesome we could visually mark the last few points with a different marker size or different color. This would dramatically improve the visual appeal of watching the learner work (really the main motivation), as well as let the user answer the question "what is the learner doing right now".

jbweston avatar Dec 19 '18 17:12 jbweston

originally posted by Joseph Weston (@jbweston) at 2017-10-27T11:53:50.943Z on GitLab

No idea how we would implement this in practice. The whole plot is generated on every "tick" (this appears to be a limitation of holoviews, that it does not have some interface for incremental updates to plots)

jbweston avatar Dec 19 '18 17:12 jbweston

originally posted by Joseph Weston (@jbweston) at 2017-10-27T11:58:31.127Z on GitLab

at the moment this would have to be implemented on the level of learner.plot, but I am not sure to what extent learners are aware of their "most recent" points

jbweston avatar Dec 19 '18 17:12 jbweston

originally posted by Joseph Weston (@jbweston) at 2017-10-27T11:59:05.234Z on GitLab

or some custom plot that diffs the learner's data and plots the "new" data differently

jbweston avatar Dec 19 '18 17:12 jbweston

originally posted by Anton Akhmerov (@anton-akhmerov) at 2017-10-27T12:03:13.910Z on GitLab

It's a low priority issue, that might be contingent on reviewing on how we perform live plotting.

jbweston avatar Dec 19 '18 17:12 jbweston

originally posted by Joseph Weston (@jbweston) at 2017-10-27T12:14:33.500Z on GitLab

I also asked a question in the holoviews gitter channel about whether incremental updates are supported.

jbweston avatar Dec 19 '18 17:12 jbweston

originally posted by Bas Nijholt (@basnijholt) at 2018-12-07T19:54:22.555Z on GitLab

One can just write their own custom plot function. For example for the Learner1D:

def plot_latest(learner):
    plot = learner.plot()
    xs, ys = zip(*learner.data.items())
    last_point = [[xs[-1], ys[-1]]]
    return plot * hv.Scatter(last_point).opts(style=dict(size=6))
runner.live_plot(plotter=plot_latest)

I don't think it is worth it to implement this for all learners.

jbweston avatar Dec 19 '18 17:12 jbweston