Hey,
If it's possible, modifying the data in place and calling `PlotWidget.update()` is much more performant, rather than clearing and re-plotting each time. I started investigating the plot/clear behavior, and indeed see occasional lockups and possibly even a leak of some sort, but the modify-in-place architecture doesn't seem to suffer from the same.
Here's an example of what I mean:
x = np.linspace(0, 0.8, numpts)
y = np.random.random(size=numpts) * 0.8
plot.plot(x=x, y=y)
# ... later, we modify in place
y[:] = np.random.random(size=numpts) * 0.8
plot.update()